Estou tendo um problema estranho com um mapeamento de modo normal de Esc.
Se você criar o arquivo escmapvimrc
com o conteúdo:
set nocompatible
set showcmd " Doesn't affect the problem: just makes it easier to see
nnoremap <Esc> :noh<CR><esc>
E então inicie o vim usando este vimrc:
vim --noplugin -u escmapvimrc
Em seguida, o vim iniciará no modo pendente do operador com um c
comando aguardando mais entradas, exibindo um arquivo vazio e exibindo a linha de comandos :noh
.
Se você remover a nnoremap
linha, o problema desaparecerá.
Se você depurar e passar por tudo, obterá a seguinte saída:
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
Depois de pressionar enter, a tela de inicialização do Vim é exibida e abaixo:
Entering Debug mode. Type "cont" to continue.
cmd: noh
>s
A tela de inicialização do Vim desaparece e você está no modo pendente de operador, conforme descrito acima.
O que está acontecendo?
EDIT: O comportamento é como descrito no Vim 7.3. No Vim 7.4.52, as nmap
causas do Vim são iniciadas no modo Substituir ao iniciar o Vim sem um arquivo. (Se o Vim 7.4.52 for iniciado com um arquivo, no entanto, ele também será iniciado com um comando c em andamento.) De qualquer maneira, o problema desaparecerá quando o nmap for removido.
nnoremap <c-l> :noh<cr><c-l>
/alksdjflaskj
para esclarecer o destaque da pesquisa, que também é bastante rápido.
:noh
para mim. Fazer o mesmo com o gvim não mostrou esse comportamento.