Vi'daki insert modunda geri alma karakteri silmiyor


69

Vi için yeniyim, aslında bugünden vi öğrenmeye başladım ve backspace anahtarının davranışına sıkışıp kaldım.

Aslında Ubuntu 12.04'ümde vi'yi ilk açtığımda ilk kez geri alma anahtarım normal çalışıyordu ancak ondan sonra garip davranmaya başladı. Her ne zaman ekleme modunda geri tuşuna bastığımda, karakter silmek yerine sadece bir yerden sola hareket ediyor.

Varsayılan geri alma işlevini nasıl geri alabilirim? Lütfen vim yüklemek veya uyumsuzluk belirlemek istemediğimi unutmayın.

Yanıtlar:


39

Vi için doğru davranış budur ve karakteri siler, sadece onu vim'deki boşla değiştirerek göstermez. Silinen karakterin üzerine başka bir karakterin üzerine yazdığınızda veya komut moduna geri döndüğünüzde görülecektir.

Örneğin, boş bir satırda komut moduyla başlamak, aşağıdaki satırın bulunduğu satırla sonuçlanır fo:

ifooBackspaceEsc

EscTuşa basmadan önce , satır okunacak foo, ancak sonuncusu o"silme sütunu" olarak etiketlendi. Http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html#tag_20_152_13_88 (çoğunlukla bu başlık altında 4. maddeye bakın ve <Control> -H hakkında daha fazla bilgi için biraz daha aşağıya bakın)


72

İşte en basit çözüm.
Bir terminal açın, ana dizine gidin ve yazın

vi .vimrc

yeni bir dosya açıldığında şimdi bu satırları dosyaya ekleyin ve

$ set nocompatible
$ set backspace=2

9
OP kullanmak istemediklerinden bahsettinocompatibility
kiri

1
hiçbir uyumluluğa gerek yok, sadece ikinci satır addig ile bunu da yapabilirsiniz
Adithya Chakilam

1
İkinci satır sadece ilk satırı eklersem çalışır.
djjeck

Boş bir .vimrc'den başlayıp, geri bırakmanın iTerm2'de neden mac üzerinde çalışmadığını merak ettiniz. Çok teşekkürler!
Igor Malyk

@ minerz029 henüz ekledi, bu sayfa başlığında böyle bir yeterlilik olmadığı için çoğu insanın cevap verdiği şey.
Muhd

22

İmleci hareket ettirerek "insert" moduna geçmeniz gerekir i. Doğrudan karakterleri silmek için başka yollar vardır. Sen VI sonra dersim kullanabileceğim bir powerpoint indirebilirsiniz burada .

"Komut" modundaymışsınız gibi geliyor. İmlecinizi hareket ettirmek için:
H= Sol, J= Yukarı, K= Aşağı, L= Sağ

Bir kez imleci yapabilirsiniz konumlandırılmış silmek şöyle metni:
x karakteri siler altında imlecin
X karakteri siler önce imleç
dwimlecin gelen siler sonraki kelimeye
dd siler çizgi imleç açık.

Metin girmek için , metin giriş modlarından birini kullanabilirsiniz.
aEkler metin hakkı imlecin
Aekler metin sonu cari hattın
imetin ekler sola imlecin
Itest ekler beginin mevcut hattın
oyeni bir satır açar aşağıda şimdiki hattı ve mod metin girişinde Yerlerin
Oaçar yeni bir hat üzerinde akım hattı ve metin giriş modunda yerlerin

Metin giriş modundan çıkmak ve Komut moduna dönmek için kullanın Esc.

To geri al değişiklikler: (Bir öğrenci favori)
uGeri Al son komutu girilen
Ugeri al'a tüm değişiklikleri ** ** akım hattına

Çık / kaydet için: :wyazar (kaydeder) dosyası ve açık kalır
:wqYazılarım (kaydeder) dosyası ve çıkar VI
:qkapanıyor (Çıkışlar) hiçbir değişiklik yaptıysanız
:q! Çıkıyor (Çıkışlar) kaydetmeden değişiklikler
ZZYazılarım dosya (kaydeder) ve çıkar VI (aynı :wq)


11
OP, gizemli davranışların insert modunda gerçekleştiğini belirtti . Yani sorulan soruya cevap bu değil.
LarsH

Aslında OP ekleme modundayken göstermedi . Soru düzenlendi.
Argusvision

1
Tamam. Haklısın Bir varsayımda bulundum gibi görünüyor. Benim için yeni VI olan kişilerin çoğu, geçiş modları ve komut modundayken gezinme ile ilgili sorunlarla karşılaşıyor. Öğrencilerim genellikle kullanıcı hatası olduğunda ya da komut setini anlamadığında kararsız davranışlarda bulundukları için VI'yı suçlar ve suçlarlar.
Argusvision

1
Anlaşılabilir. Bunun insert olmayan moda ortak tepki olduğu konusunda hemfikirim.
LarsH

Argus, "ekleme modunda" bir düzenlemede soru başlığına eklendi, ancak baştan itibaren sorunun gövdesindeydi.
Lars

13

Geri silme ve ok tuş işlevselliğini elde etmek için tam vim paketini yükleyin

sudo apt-get update
sudo apt-get install vim

Beklendiği gibi çalışıyor .. En iyi cevap
Vicky

Bu mükemmel bir cevap. Herhangi bir yapılandırma dosyasını düzenlemeye gerek yok, sadece vim-runtimepaketi kurun ve her şey eskisi gibi çalışıyor. Teşekkürler!
Olli D-Metz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.