Je rencontre un problème étrange avec un mappage en mode normal de Esc.
Si vous créez le fichier escmapvimrc
avec le contenu:
set nocompatible
set showcmd " Doesn't affect the problem: just makes it easier to see
nnoremap <Esc> :noh<CR><esc>
Et puis démarrez vim en utilisant ce vimrc:
vim --noplugin -u escmapvimrc
Ensuite, vim démarrera en mode opérateur en attente avec une c
commande en attente de saisie supplémentaire, affichant un fichier vide et avec la ligne de commande :noh
.
Si vous supprimez la nnoremap
ligne, le problème disparaît.
Si vous déboguez et parcourez tout, vous obtenez la sortie suivante:
Entering Debug mode. Type "cont" to continue.
/[...]/escmapvimrc
line 1: set nocompatible
>s
/[...]/escmapvimrc
line 2: set showcmd " Doesn't affect the problem: just makes it easier to see
>s
/[...]/escmapvimrc
line 3: nnoremap <Esc> :noh<CR><esc>
>s
/[...]/escmapvimrc
line 4: End of sourced file
>s
Press ENTER or type command to continue
Après avoir appuyé sur Entrée, l'écran de démarrage de Vim s'affiche, et en dessous:
Entering Debug mode. Type "cont" to continue.
cmd: noh
>s
L'écran de démarrage de Vim disparaît alors et vous êtes en mode opérateur en attente, comme décrit ci-dessus.
Que se passe-t-il?
EDIT: Le comportement est tel que décrit dans Vim 7.3. Dans Vim 7.4.52, le nmap
fait démarrer Vim en mode Remplacer lors du démarrage de Vim sans fichier. (Si Vim 7.4.52 est démarré avec un fichier, cependant, il démarre également avec une commande c en cours.) Quoi qu'il en soit, le problème disparaît lorsque le nmap est supprimé.
nnoremap <c-l> :noh<cr><c-l>
/alksdjflaskj
pour effacer la surbrillance de la recherche, ce qui est également assez rapide.
:noh
pour moi. Faire de même avec gvim n'a pas montré ce comportement.