Escape lento de vim del modo de inserción

Pregunta:

Cuando presiono <Esc> desde el modo de inserción, se demora alrededor de 1 segundo, pero si solo hago <ctrl+c> en su lugar, es rápido.

Verifiqué si había mapeo con escape con :verbose imap <Esc> , pero no encontré ninguno.

Respuesta:

Hay dos tipos de demora cuando presiona <esc> en el modo de inserción:

retraso de mapeo

Si crea una asignación incorrecta que comienza con <esc> :

inoremap <esc>x <esc>:echom "balabala"<cr>

Cuando presione <esc> , vim esperará :h 'timeoutlen' milisegundos para ver si la siguiente tecla es x .

Debe evitar este tipo de mapeo en todos los modos, ejecuta los siguientes comandos para comprobar si existe este tipo de mapeo en todos los modos:

:verbose map <c-v><esc>
:verbose map! <c-v><esc>
               ^----------------press <c-v><esc> on your keyboard      

El retraso del mapeo se controla mediante :h 'timeout' y :h 'timeoutlen' .

retraso del código clave

Muchos códigos de teclas de terminal comienzan con <esc> , en mi máquina, <f5> es ^[[15~ , ^[ es literal <esc> . Cuando vim recibe <esc> de su terminal, espera :h 'ttimeoutlen' milisegundos para ver si hay más caracteres en este código clave, si no hay ninguno, entonces vim sabe que es realmente un <esc> , de lo contrario debe ser algo demás. Este tipo de retraso es normal, puede cambiar ttimeoutlen para reducirlo.

El retardo del código clave está controlado por :h 'ttimeout' y :h 'ttimeoutlen' (no es del todo cierto, consulte :h 'ttimeout' para obtener más detalles).

Entorno común

set timeoutlen=1000
set ttimeoutlen=50

Para ser honesto, configuré ttimeoutlen en 5, 50 sigue siendo demasiado retraso.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım