Vim aguenta fuga

3

Quando eu bato esc ou Ctrl-[ no modo de inserção vim, ele fica pendurado por meio segundo antes de sair do modo de inserção. Não é um problema enraizado no desempenho, já que eu posso digitar qualquer caractere e o vim sairá do modo de inserção imediatamente, mas se eu acertar esc e nada mais, o vim irá esperar por meio segundo.

Eu acredito que isso é porque existe alguma outra chave para o esc, e o vim está esperando para ver se eu acertei. Essa suspeita é reforçada pelo fato de que quando eu set notimeout , o vim irá esperar indefinidamente para eu pressionar outra tecla antes do modo de inserção existente. Isso é muito chato, pois às vezes eu gosto de ter notimeout set.

Alguém sabe como fazer esc agir imediatamente? Existe alguma outra ligação de chave que começa com esc que eu possa desativar?

Por que vale a pena, :map <Esc> e :imap <Esc> yield No mapping found , e posso reproduzir isso em uma nova instalação do vim sem .vimrc ou .vim presente.

    
por So8res 23.04.2012 / 23:46

2 respostas

3

Várias chaves, incluindo as teclas de seta, enviam sequências de escape. Portanto, para que essas chaves funcionem, o vim deve verificar caracteres adicionais após o ESC para determinar se uma dessas teclas foi pressionada. Por padrão, o tempo limite da seqüência de escape e o tempo limite da seqüência mapeada são controlados pela configuração timeoutlen , cujo padrão é 1000 ms. No entanto, o vim permite que o tempo limite da seqüência de escape seja definido independentemente usando ttimeoutlen . (Além disso, defina ttimeout se quiser que ele entre em vigor mesmo quando timeout estiver desativado.) A menos que você queira digitar as seqüências de escape manualmente ou esteja usando um modem de 110 bauds, não deverá ter problemas para reduzir o tempo limite da seqüência de escape. Por exemplo, use :set ttimeoutlen=100 para definir o tempo limite da sequência de escape para 100 ms. Você também pode desativar o reconhecimento de seqüências de escape quando estiver no modo de inserção usando :set noesckeys .

    
por 24.04.2012 / 02:26
1

Eu tive um problema semelhante em que o vim iria ficar indefinidamente depois de pressionar o ESC. Na verdade, estava esperando por mais personagens - sua resposta estava me colocando nessa linha de pensamento!

Descobriu-se que, na verdade, era um problema de caráter ESC, mas diferente; Eu estava rodando vim dentro do tmux. Eu decidi verificar a variável de ambiente "TERM" e ela foi definida como "screen". Mudar a configuração TERM para 'xterm-color' (ou o que for apropriado para o seu sistema) fez com que o problema de suspensão do vim desaparecesse.

Não tenho certeza se isso é aplicável à sua situação, mas, considerando que o googling para esse problema apareceu a resposta do mark4o no topo os resultados da pesquisa também decidiram adicionar essa situação potencial a outras pessoas.

    
por 26.05.2014 / 09:12

Tags