Différence de comportement entre `<Esc>` et `inoremap jk <Esc>` dans vim

4

Je viens d’installer Ubuntu 12.04 sur un nouvel ordinateur et apt-get install[ed] vimj’ai un comportement étrange avec mon alias Esc- si je suis en INSERTmode et que je tape la Escclé, je INSERTquitte le mode et le curseur se déplace d’un caractère à gauche, comme prévu, mais si je tape l' jkalias, que j'ai défini dans mon .vimrcas inoremap jk <Esc>, je quitte le INSERTmode et le curseur se déplace d'un caractère à droite , ce qui est en fait assez déconcertant. Des idées pour expliquer pourquoi c'est le cas?

eZanmoto
la source

Réponses:

2

Je ne pense pas que ce soit uniquement à cause de cette règle, cela est causé par autre chose. Si je crée un .vimrcfichier contenant uniquement cette règle:

$ more .vimrc
inoremap jk <Esc>

J'obtiens le même comportement que prévu des deux méthodes.

Exemple 1 - esc

Invoquez vim, passez en mode Insertion , flèche droite 1 fois, appuyez sur Esc.

   ss de vim w / esc

Exemple n ° 2 - jk

Invoquez vim, passez en mode Insertion , flèche droite 1 fois, appuyez sur jk.

   ss de vim w / jk

slm
la source
0

La réponse découlait de la réponse de slm, à savoir que ce n'était pas la règle à elle seule qui était à l'origine de ce problème. ma règle, dans son intégralité , était en fait

inoremap jk <Esc>  " Recommended in http://learnvimscriptthehardway.stevelosh.com/chapters/10.html

Cela n’avait posé aucun problème sur les implémentations de Vim que j’utilisais sous Mac OS et Debian pour une raison quelconque, mais les deux espaces après Escla règle, avant que le commentaire ne provoque le déplacement du curseur de deux espaces après la sortie du INSERTmode .

eZanmoto
la source