Je rencontre un problème étrange avec un mappage en mode normal de Esc.
Si vous créez le fichier escmapvimrcavec 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 ccommande en attente de saisie supplémentaire, affichant un fichier vide et avec la ligne de commande :noh.
Si vous supprimez la nnoremapligne, 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 nmapfait 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>
/alksdjflaskjpour effacer la surbrillance de la recherche, ce qui est également assez rapide.
:nohpour moi. Faire de même avec gvim n'a pas montré ce comportement.