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


Réponses:


7

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

Pour l'activer, il vous suffit de mettre quelque chose comme ceci dans votre .vimrcet de le recharger / redémarrer Vim:

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

Plus d'informations et alternatives


1
Eyup, c'est la voie Vim. Un autre moyen courant promu par Learn Vim the Hard Way (livre) estinoremap jk <Esc>
— grochmal

C'est une bonne solution, mais quel est le problème pour utiliser uniquement Ctrl + Entrée + j?
— Sandra Ross

@SandraRoss Vous pouvez vraiment utiliser n'importe quelle combinaison de touches de votre choix (mais attention, certaines, par exemple Ctrl-Entrée, ne fonctionnent pas sur macOS). Cela dit, Ctrl + Entrée + j me semble plus difficile à taper, et je ne sais honnêtement pas si vous pouvez même configurer des combinaisons à trois touches avec deux touches non modificatrices (Entrée, j) dans Vim.
— Konrad Rudolph

D'accord, je comprends. En fait, Ctrl + Entrée + jj ne fonctionne pas pour moi, car, en effet, j'utilise macos X. Au moins, pourriez-vous me dire ce que je dois entrer pour juste Ctrl + j.
— Sandra Ross

@SandraRoss Pour cela, ça inoremap <C-j> <Esc>devrait marcher. :-)
— Konrad Rudolph

32

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


3
J'ai eu une fois un vrai terminal vt220, et son clavier n'a pas de Escapeclé. Le pressage Ctrl+[était le seul moyen de générer Escape.
— Kusalananda

11

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 remapper CapsLockà Ctrlcertains utilisateurs vim (moi y compris) remap CapsLockà Esc. Cela fonctionne pour tout * nix utilisant X11.

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

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

Pour l'obtenir lors de la connexion, vous pouvez ajouter les xmodmapexpressions ~/.Xmodmapcomme suit:

remove Lock = Caps_Lock
keycode 66 = Escape

Bien que pour la deuxième partie YMMV, puisque tous les gestionnaires d'affichage ne fonctionnent pas ~/.Xmodmap. Vous devrez peut-être ajouter xmodmap .Xmodmapà .xinitrccertains d'entre eux.


Je vois exactement ce que tu veux dire. Je l'ai vu plus tôt cette semaine
— Sandra Ross

Je le ferais, mais j'utilise CapsLock comme clé de composition (:
— DopeGhoti

6

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.


CTRL-C est ASCII 0x03, envoie SIGINT au shell - n'est pas le même que ESC.
— chat

@cat Cela fonctionne essentiellement de la même manière dans vim. J'utilise toujours Ctrl-C au lieu d'Esc
— Erik W

1
@cat: Vous l'obtenez gratuitement, car vim a ce gestionnaire en place. Vous n'avez rien à faire vous-même. Cette réponse est prête à l'emploi; Je viens de l'essayer. Cela fonctionne-t-il en général pour n'importe quelle application? Non, mais ce n'est pas ce qui a été demandé.
— Courses de légèreté avec Monica

2
@cat: Vraiment? Le titre est "Comment envoyer le signal ESC à vim lorsque ma touche esc ne fonctionne pas?" , la seule balise est vim et le problème décrit dans la question concerne l'échappement du mode d'insertion de Vim. Voici la partie résumante de la question: "Existe-t-il une autre clé utilisée pour libérer le mode d'insertion." Si ce n'est pas spécifique à Vim et à son mode d'insertion, alors je ne sais pas ce que c'est!
— Courses de légèreté avec Monica

1
@LightnessRacesinOrbit Eh bien, quand j'ai vu le titre au départ, c'était "Une autre clé utilisée pour Esc" et la question ne semblait pas du tout spécifique vim. Pardon! ¯_ (ツ) _ / ¯
— cat

-3

Ctrl + F2

Est activé par défaut. Pas besoin de configurer de paramètres.

Vous passerez en mode normal, où vous pourrez le faire :q! or :wq.


3
Ctrl+F2peut envoyer une fuite, mais il enverra également d'autres choses.
— Kusalananda
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.