Sto riscontrando uno strano problema con una mappatura in modalità normale di Esc.
Se si crea il file escmapvimrc
con il contenuto:
set nocompatible
set showcmd " Doesn't affect the problem: just makes it easier to see
nnoremap <Esc> :noh<CR><esc>
E quindi avviare vim usando questo vimrc:
vim --noplugin -u escmapvimrc
Quindi vim si avvierà in modalità operatore in attesa con un c
comando in attesa di ulteriori input, visualizzando un file vuoto e con la riga di comando visualizzata :noh
.
Se rimuovi la nnoremap
linea, il problema scompare.
Se esegui il debug e analizzi tutto, ottieni il seguente output:
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
Dopo aver premuto Invio, viene visualizzata la schermata di avvio di Vim e sotto:
Entering Debug mode. Type "cont" to continue.
cmd: noh
>s
La schermata di avvio di Vim scompare quindi e si è in modalità operatore in sospeso, come descritto sopra.
Cosa sta succedendo?
EDIT: il comportamento è come descritto in Vim 7.3. In Vim 7.4.52, nmap
Vim si avvia in modalità Sostituisci quando si avvia Vim senza un file. (Se Vim 7.4.52 viene avviato con un file, tuttavia, si avvia anche con un comando c in corso.) Ad ogni modo, il problema scompare quando viene rimosso nmap.
nnoremap <c-l> :noh<cr><c-l>
/alksdjflaskj
per chiarire l'evidenziazione della ricerca che è anche abbastanza veloce.
:noh
per me. Fare lo stesso con gvim non ha mostrato questo comportamento.