web-dev-qa-db-fra.com

Comment envoyer le signal ESC à Vim lorsque ma touche Échap ne fonctionne pas?

J'ai un problème avec le Esc lorsque je veux revenir au mode interactif à partir du mode d'insertion. Existe-t-il une autre clé utilisée pour libérer le mode d'insertion.

21
Sandra Ross

Nonobstant les solutions existantes, la solution conventionnelle de Vim consiste à remapper les clés de votre .vimrc configuration. En fait, de nombreux utilisateurs de Vim ont une clé accessible plus facilement remappée à Esc. Les choix populaires sont Ctrl+Enter, ou jj, etc.

Pour l'activer, mettez simplement quelque chose comme ceci dans votre .vimrc et rechargez-le/redémarrez Vim:

" Shift-Enter
inoremap <S-CR> <Esc>
" Double-j
inoremap jj <Esc>

Plus d'informations et alternatives

7
Konrad Rudolph

Ctrl-[ envoie le même caractère au terminal que le physique Esc clé. Ce dernier est simplement un raccourci pour le premier, en général.

34
DopeGhoti

Si vous voulez pouvoir utiliser une seule clé, en tant que solution pure * nix (sans mappages Vim), vous pouvez définir une autre clé comme Esc. Tout comme les utilisateurs d'Emacs remappent CapsLock à Ctrl certains utilisateurs de Vim (moi inclus) remappent CapsLock à Esc. Cela fonctionne pour tout * nix utilisant X11.

Utilisation xev -event keyboard (puis appuyez sur CapsLock) pour obtenir le code clé pour le CapsLock clé (pour moi c'est le keycode 66). Ensuite, vous pouvez utiliser xmodmap pour remapper la clé:

xmodmap -e 'remove Lock = Caps_Lock' -e 'keycode 66 = Escape'

Pour l'obtenir lors de la connexion, vous pouvez ajouter les expressions xmodmap à ~/.Xmodmap comme suit:

remove Lock = Caps_Lock
keycode 66 = Escape

Bien que pour la deuxième partie YMMV, puisque tous les gestionnaires d'affichage n'exécutent pas ~/.Xmodmap. Vous devrez peut-être ajouter xmodmap .Xmodmap à .xinitrc sur certains d'entre eux.

12
grochmal

Vous pouvez essayer Ctrl-C, cela fonctionne pour moi et est à mon avis plus facile que ESC. Cependant, je ne sais pas s'il est activé par défaut.

7
vatsug