2011-01-31 12 views
6

En algunos momentos, vim funciona notablemente lento. Cuando estoy en modo normal en el archivo 100 de línea, tipo "O " (letra mayúscula o) que aparece unos 1-2 segundos y sólo entonces por encima de la línea actual nueva línea vacía se crea en el modo de inserción (eso es comportamiento normal). Y quiero saber las posibles razones por las que esto sucede ...En algunos momentos, vim funciona notablemente lentamente

Tengo una computadora bastante poderosa, por lo que el problema no está en la computadora.

+4

Al que votó esta pregunta 'fuera del tema': ¿qué foro sería más sobre el tema y por qué no está relacionado con la programación? - Hay personas que se ganan la vida con la programación, y vim es su herramienta para lograr lo que se supone que deben lograr, y si vim es lento, sin duda está relacionado con la programación. –

+0

¿hay mensajes notables ('': messages')? Si tu vim está construido con soporte de perfiles, podrías probar ': prof start' para ver qué operación toma más tiempo ... Generalmente, esta característica no está compilada, pero puedes construir vim muy fácilmente por ti mismo ... – eckes

Respuesta

8

¿Estás golpeando <Esc> luego O en una sucesión muy rápida? Si es así, está viendo la demora debido a ciertas secuencias de escape de terminal que comienzan con <Esc>O. Vim tiene que esperar para ver si realmente estás escribiendo una de esas secuencias.

Para ver esto usted mismo, en el modo de inserción escriba <Esc>OA y su cursor debe moverse hacia arriba. Al presionar <Ctrl-v><Up> en el modo de inserción, se mostrará el código de escape generado.

+0

Sí, estoy escribiendo demasiado rápido. Experimenté esa situación y tienes toda la razón. Muchas gracias. – Zango

1

puede ser que usted tiene una asociación de teclas redefinido que comienza con "O" ... así VIM debe esperar a ver si se va a escribir las siguientes teclas

8

Tipo :map O

Si usted tiene una mapeo normal comenzando con una capital O, es posible que Vim esté esperando un tiempo de espera para asegurarse de que no está comenzando a escribir un comando complejo.

Normalmente, el tiempo de espera predeterminado es de 1 segundo.

Ver :help timeout y :help timeoutlen.

Si tiene una asignación que comienza con O, puede encontrar su definición con :verbose map. Luego puede deshabilitarlo o modificarlo (o eliminar el complemento que define la asignación).

+1

In este tipo de caso: mapa O – skeept

+0

@skeept: buena observación, no sabía que fuera posible. He actualizado mi respuesta. –

+0

Gracias por su respuesta interesante, pero "No se encontró el mapeo". No siempre aparece O pero a veces ... Si tuviera un mapeo, sería siempre así. – Zango

Cuestiones relacionadas