Por que o mapeamento ESC inicia a linha de comando Vim no modo Replace?

2

Eu estava tendo um problema em que iniciar o Vim a partir da linha de comando estava começando no modo Substituir. Eu finalmente limitei essa linha na minha configuração:

nnoremap <ESC>         :noh<return><ESC>

Se eu mudar a chave para algo diferente de nnoremap <space><space><space> (só para testar… eu nunca deixaria assim), eu não vejo o comportamento. Se eu usar o MacVim em vez da linha de comando Vim, também não o vejo. Estou usando o iTerm 2 com xterm-256color terminal e zsh como meu tipo de shell, já que parece ser relevante.

Alguém tem uma ideia do que eu deveria estar procurando para solucionar isso? A resposta é, naturalmente, bem-vinda, mas se você também puder compartilhar onde eu deveria estar pensando sobre esse problema, isso pode me ajudar a solucionar problemas semelhantes no futuro.

Obrigado!

    
por jxpx777 27.03.2015 / 17:56

1 resposta

1

As sequências ANSI Escape usadas pelo terminal começam todas com Escape ( ^[ ) e, como o Vim as utiliza para se comunicar com o terminal, fica confuso quando você mapeia <Esc> . É também por isso que não há problemas no MacVim (e no GVIM); aqueles que não usam o terminal e têm diferentes canais de E / S.

Mapeando <Esc> no terminal O Vim está apenas procurando por problemas; por favor, basta escolher outra chave.

    
por 27.03.2015 / 20:36

Tags