2012-02-18 22 views
10

Si abro un archivo que contiene 5.000 líneas de código y sigo ingresando, encontré que mi vim se volvió muy lento, muestra mi entrada después de aproximadamente 1s.Respuesta de Vim bastante lenta

Incluso no será mejor después de que inicie con --noplugin. Pero después de cambiar mi archivo .vimrc, todo vuelve a funcionar bien. El archivo .vimrc está escrito por mí mismo y, después de comprobarlo durante algún tiempo, todavía no puedo encontrar el error. He borrado todos los mapas clave, pero el problema aún existe.

Entonces, ¿me puede dar algún consejo o decirme cómo depurar en vim? Descubrí que hay una opción de depuración pero no puedo obtener cómo trabajar.

+0

Janus utilizado por casualidad? Si es así, ese parece ser un problema común.Si no dependes de un fugitivo, deshabilítalo. https://github.com/carlhuda/janus/issues/396 – three

+0

Gracias tres. No sé la versión de vim ahora. Pero parece que no es causado por vim, pero el script escrito por mí tiene algún problema. –

+1

¿Cuál es el tipo de archivo? Es ese XML? ¿Has intentado ': syn off'? – Benoit

Respuesta

12

Usted puede utilizar la opción --startuptime cuando empezar con vim:

--startuptime {fname}     *--startuptime* 
     During startup write timing messages to the file {fname}. 
     This can be used to find out where time is spent while loading 
     your .vimrc, plugins and opening the first file. 
     When {fname} already exists new messages are appended. 
     (Only available when compiled with the |+startuptime| 
     feature). 

Tome los siguientes pasos para diagnosticar el problema:

  • tipo vim --startuptime log.txt main.java en bash para iniciar vim
  • tipo :tabe log.txt en vim para ver el registro.
+2

Hola kav. Mi vim no es lento en el arranque. –

+0

@ user674199 He actualizado la respuesta. – kev

+0

OK, lo intentaré. Gracias kev. –

7

Algo como esto generalmente es causado por la coloración de sintaxis. Pruebe con :syntax off.

+0

No debería presentar ningún problema en los archivos de ese tamaño (~ 5000 líneas), los míos son significativamente más grandes y todavía no hay desaceleración. Si fue 500000 líneas, tal vez ... – Rook

+0

No es un problema de sintaxis. He cambiado a vimrc de otros y la sintaxis está activada. Funciona bien. Gracias. –

+1

Cuando desactivé la sintaxis, se solucionó el problema. Pero también se acelerará cuando cambie el archivo vimrc. Me he referido a la misma sintaxis en estos dos archivos vimrc. –

11

El motivo de la lentitud suele ser el conjunto de parámetros no establecido o incorrecto ruby_path en el tiempo de compilación de vim (see also discussion on google vim/ruby google group). Es más fácil configurarlo en vimrc, porque puede cambiarlo sin volver a compilar vim. Puede establecer la ruta a través de la variable g: ruby_path en su archivo .vimrc. No copie y pegue ambos, use el correcto.

Si la configuración RBENV usted tiene que utilizar éste:

" ruby path if you are using rbenv 
let g:ruby_path = system('echo $HOME/.rbenv/shims') 

Si la configuración RVM usted tiene que utilizar éste:

" ruby path if you are using RVM 
let g:ruby_path = system('rvm current') 

También puede utilizar el plugin vim-rbenv, que establece el camino también

Para mí, la parte de carga de funciones específicas de ruby ​​en vim es 10 veces más rápida.

Si usa jruby, la lentitud de arranque puede ser aún mayor. Vea ejemplos para arreglarlo .

+0

De hecho, forzar un camino de rubí a través de este método mejora sustancialmente la velocidad de inicio de vim. ¡Gracias! – agarie

5

Si se ejecuta vim 7.4,

ponga esto en su .vimrc

conjunto regexpengine = 1

vim 7.4 tiene un nuevo motor de expresiones regulares que parecen no funcionar bien en algunas situaciones. La versión anterior vim 7.3 usaba el viejo motor (set regexpengine = 1).

La "respuesta lenta" del problema de resaltado de sintaxis también afecta a los archivos de ayuda de vim (y también al archivo .vimrc).

+0

Gracias a la tonelada esto hizo el truco – robert

+0

': set regexpengine = 1' - Este es un gran hallazgo que * ningún otro experto * mencionó. Obtuve algunas mejoras (pero no completas) después de este cambio. Otra razón para mi ralentización fue ': set relativenumber', que está causando una gran cantidad de redibujados de pantalla que muestran una desaceleración. –

Cuestiones relacionadas