Vim Takma Modunda Sıkışmış


52

Vim'i birkaç aydır web sunucum aracılığıyla kullanıyorum (macun erişimine izin veriyorlar). Aniden, escapeanahtar tepkisiz hale geldi. Sadece kaçışa vurarak insert veya başka bir mod olamaz. Ben isabete sahip F1komut moduna vim ve tekmeler beni yardıma getirir.

Kaçış tuşunu kullanan tüm pencere kısayollarım normal şekilde çalıştığından, klavyemdeki çıkış tuşumun iyi çalıştığından eminim.

Bunun saçma bir soru olduğunu biliyorum ve bir çözümle ilgili daha fazla dikkat edilmesi gereken bir konu olduğuna eminim. Gerçekten ihtiyacım olan şey, nereden bakacağım konusunda sağlam bir ipucu.

Yardımcı olabilecek şeyler:

  1. Macun üzerinden vim kullanıyorum
  2. Hapishane kullanarak giriş yapıyorum
  3. Ben kök değilim

terminal ayarların neler? Örneğin, TERM ortam değişkeni tam olarak neye ayarlanmış (uzaktaki kabukta)?
quack quixote

$ TERM 'xterm' olarak ayarlandı
Levi Hackwith

Çalışıyor Ctrl-[mu Basıp kaçarsan ne alırsın Ctrl-v? Olarak göstermeli ^[.
Dennis Williamson,

Ctrl- [çalıştı. Devam et! Bu bana çok sıkıntı kazandırıyor. Neden escartık işe yaramadığını açıklayabilme ihtimalin var mı ? Ayrıca, yorumunuzu bir cevap olarak gönderin, böylece kabul edebilirim.
Levi Hackwith

Bunu okurken ilk düşüncem: "Ah, 'beni buradan çıkar' düğmesini kırdı '
Daniel

Yanıtlar:


16

Kullanmayı deneyin Ctrl-[yerine Esc.

Neyin sonucu:

python -c "print ord(raw_input('char '))"

Eğer bastığınızda Escve Enter? "27" olmalı. O Ctrl-Vzaman basmanın sonucu nedir Esc?

Makul olup olmadıklarını görmek için PuTTY’deki tüm ayarları kontrol ettiniz mi?

Uzaktaki sistemde Bash kullanıyor musunuz? Çıktısına bak

bind -p | grep -i '\\e' | less

ve olağandışı bir şey görüp görmediğinizi görün. Adlı bir dosyanız var ~/.inputrcmı? Olağandışı bir şey olup olmadığını görmek için içeriğine bakın.

Şuna bak ~/.vimrcve her şeyin yolunda olup olmadığını gör.


Ctrl-c de ekleme kipini sonlandırmalı ('[' bazen klavyelerde biraz zor olabilir)
akira

1
Python betiğini koştum ve boş bir dize olarak geri döndü. Bunu nasıl düzeltebilirim? Macun kullanıyorum.
Keith

@Keith: Diğer teşhis önerilerinden herhangi birini denediniz mi?
Dennis Williamson,

ctrl + [ne sebeple olursa olsun benim için çalıştı.
Derek Adair,

146

Yanlışlıkla Ctrl+ tuşlarına sbasmıştım ve ekleme modunda kaldım . Bundan kurtulmak için Ctrl+ kullanın q.


7
Bu ekleme modu değil XOFF. Yaparak yazılım akış kontrolünü devre dışı bırakabilirsiniz stty -ixon(kendinize ekleyin ~/.bashrc). O zaman bu tuş vuruşu başka bir şeye bağlanmaya hazır olacak. Bash'de varsayılan olarak bağlanır forward-search-history(Ctrl-r'nin tersi). Ctrl-q (Bash quoted-insert) de mevcut olacak.
Dennis Williamson,

@DennisWilliamson Daha .bash_profileiyi bir yer olmaz mıydı? Etkileşimli olmayan bir kabukta kapatmaya gerek yok, değil mi?
Piotr Dobrogost

1
@PiotrDobrogost: "Oturum açma kabuğu olmayan etkileşimli bir kabuk başlatıldığında, Bash o dosya varsa ~ / .bashrc komutlarını okur ve yürütür." .bash_profileyalnızca Bash bir giriş kabuğu olduğunda çalıştırılır. "Normalde, ~ / .bash_profile diziniz if [ -f ~/.bashrc ]; then . ~/.bashrc; fi" "
Dennis Williamson

@DennisWilliamson Haklısın. Söylemek istediğim, yazılım akış kontrolünü sadece etkileşimli mermilerde devre dışı bırakmanın bir anlamı olabilir. Eğer bu doğruysa, daha sonra bir kabuğun etkileşimli olup olmadığını söylemenin bir yolunu bulmak mantıklı olacaktır ve yalnızca bu durumda yazılım akış kontrolünü devre dışı bırakın.
Piotr Dobrogost

@PiotrDobrogost: Bkz cevabım "bir kabuk etkileşimli modda çalışıyorsa nasıl bash kontrol edebilirim?" İçin
Dennis Williamson,

4

Belki de ekleme modunu kullanıyorsunuzdur .

'insertmode' 'im' 'noinsertmode' 'noim'
boolean (varsayılan kapalı)
Vim'in Insert modunun varsayılan mod olduğu şekilde çalışmasını sağlar. Vim'i modelsizlik editörü olarak kullanmak istiyorsanız kullanışlıdır. İçin kullanılan | evim |.
[...]
- CTRL-OBir Normal mod komutu | i_CTRL-O |) yürütmek için kullanın . Bu bir eşleme olduğunda, 'insertmode' kapalıymış gibi yürütülür. Eşleştirme tamamlanana kadar normal mod etkin kalır. - CTRL-LBir dizi Normal mod komutunu çalıştırmak için düğmelerini kullanın, ardından EscEkle moduna geri dönmek için düğmelerini kullanın . O Not CTRL-L'insertmode' set değilken yaptığı gibi hareket imleç bıraktı. | i_CTRL-L |

~/.vimrcAşağıdaki satırı eklemek için düzenlemeyi öneririm :

set noinsertmode         "disable insert mode

1
Benim durumumda insert modunda kaldım çünkü yanlışlıkla komut satırında -y `yi kullandım. El kitabında da belirtildiği gibi: -y Kolayca çalıştırılabilir modda, tıpkı çalıştırılabilir" evim "veya" eview "olarak adlandırılır. Vim'in bir tıklat ve yaz düzenleyicisi gibi davranmasını sağlar. Bu "kolay kullanım modundan" çıkmak için, sadece + SandRock
ton

0

Bu sorunu yaşadım, ancak yanlışlıkla SCIM giriş modunu "Diğer - RAW KODU" olarak değiştirdim. Klavyeyi İngilizce / Klavye olarak değiştirdim ve daha fazla sorun yaşamadım.

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.