ruby vim

ruby - Vim lento con resaltado de sintaxis de rubí



(7)

Debes establecer estas dos opciones en tu vimrc:

set ttyfast set lazyredraw

Si esto no soluciona su problema, intente iniciar vim sin su vimrc para asegurarse de que ninguna de sus configuraciones actuales lo esté arruinando.

vim -u NONE

He estado usando vim sobre ssh para trabajar por una semana o dos ahora y todo ha ido muy bien. Hoy decidí agregar algo de resaltado de sintaxis, autocompletar y algunos otros complementos generales. Configurar vundle y se puso a trabajar.

Mi actual .vimrc se puede encontrar en https://github.com/scottopell/dotfiles/blob/master/.vimrc

He clonado mis archivos vimrc y vim en mi escritorio ubuntu local y vim se ejecuta exactamente como se esperaba, sin lentitud en los archivos que puedo encontrar. Los mismos complementos y el mismo vimrc y ninguna lentitud en los archivos ruby.

actualizar

Puedo reproducir este problema con el siguiente .vimrc

syntax on

y una carpeta ~/.vim vacía.

Sin embargo, vim en este vps es muy lento con los archivos ruby ​​/ haml. Mucho más archivos ruby. Cuando abro cualquier archivo ruby, el inicio toma aproximadamente 2 segundos (programado con --startuptime). Con un archivo haml de longitud comparable, es aproximadamente .5 segundos. Esta lentitud no solo está en el inicio, moverse y editar el archivo son muy lentos.

Haml / erb (son básicamente lo mismo)

268.818 000.005: before starting main loop 848.871 580.053: first screen update

Rubí

199.613 000.004: before starting main loop 2937.859 2738.246: first screen update

Sin resaltado de sintaxis en el mismo archivo ruby ​​que el anterior

149.047 000.004: before starting main loop 152.912 003.865: first screen update

He intentado usar mosh ( http://mosh.mit.edu ) y no ayuda. ya no es realmente relevante

Como puede ver en mi archivo .vimrc, he intentado algunas soluciones diferentes a este problema. He intentado ejecutar con todos los complementos desactivados (los moví todos de ~/vim/bundle/PLUGINNAME a ~/vim/bundle/disabled/PLUGINNAME , ¿es correcto?), Establecí el camino de ruby, establecí el nivel de plegado en manual, deshabilité el esquema de colores , nada ayuda. ver edit3

Puedo publicar el log completo de startuptime para cualquier archivo si eso ayuda.
He probado algunos otros idiomas (php, c, python, vimL) y ninguno experimenta ninguna ralentización.

EDITAR: solo para aclarar, estoy ejecutando una sesión ssh con el usuario ssh @ server y una vez dentro del servidor estoy haciendo vim file.rb.

EDIT2: Acabo de intentar acceder al servidor directamente y la lentitud persiste sin ssh, me he actualizado para reflejar que esto no es un problema con ssh.

EDIT3: Puedo reproducir el problema con un archivo .vimrc que contiene la syntax on una sola línea con una carpeta ~ / .vim vacía

EDIT4 desinstalé mi versión compilada de vim y todas las versiones que pude haber instalado a través de apt, eliminé manualmente todas las cosas vim de mi sistema, y ​​puedo ejecutar vim con vim -u NONE /path/to/file.rb luego hago: syn y el problema estará allí. El archivo en cuestión es un controlador de rieles, pero como he dicho, puedo recrearlo hasta cierto punto con la mayoría de los archivos, pero los controladores de rieles parecen ser los peores.


Dos cosas que ayudarán drásticamente a acelerar el resaltado de la sintaxis de Ruby son deshabilitar la línea del cursor y el número relativo de Ruby (si los usa).

Tengo lo siguiente en mi .vimrc:

" Ruby is an oddball in the family, use special spacing/rules if v:version >= 703 " Note: Relative number is quite slow with Ruby, so is cursorline autocmd FileType ruby setlocal ts=2 sts=2 sw=2 norelativenumber nocursorline else autocmd FileType ruby setlocal ts=2 sts=2 sw=2 endif


Estoy usando vim 7.4.52 y ninguna de estas soluciones funcionó para mí.

De acuerdo con este comentario de github sobre el tema ( https://github.com/vim/vim/issues/282#issuecomment-169837021 ), foldmethod=syntax es responsable de la lentitud.

¡Agregando esto a mi .vimrc finalmente lo arreglé!

augroup ft_rb au! " fix the SLOOOW syntax highlighting au FileType ruby setlocal re=1 foldmethod=manual augroup END


Intenté la mayoría de estas soluciones, pero lo que terminó siendo lo mejor para mí fue eliminar los complementos asociados con la línea aérea.


Intente configurar su ruta de Ruby explícitamente en su vimrc:

let g:ruby_path="/usr/bin/ruby"


La solución a este problema resultó ser el motor de expresiones regulares que vim usa. La especulación sobre #vim en freenode es que los archivos de sintaxis de ruby ​​usan algo que es más lento en el nuevo motor de expresiones regulares.

Cualquier versión anterior e incluyendo Vim 7.3.969 tiene el antiguo motor de expresiones regulares. Agregue set re=1 a su vimrc para forzar el antiguo motor de vimrc regulares en cualquier versión más nueva (y no olvide volver a cargar el archivo con el que está editando actualmente :e ).

Gracias a Houl, Dolio y dmedvinsky de #vim por su ayuda para descubrirlo.

No he tenido la oportunidad de probar la última versión absoluta, hubo un compromiso anoche que puede ayudar con este problema. Actualizaré esto si tengo la oportunidad de probar la versión sangrante nuevamente.


ver ACTUALIZACIÓN en la parte inferior.

esto puede ser útil como una solución -

Estoy usando la versión vim

VIM - Vi IMproved 7.4 (2013 Ago 10, compilado el 2 de enero de 2014 19:40:46)

Parches incluidos: 1-52

es la versión original de Linux Mint 17.1 Rebecca.

el archivo de sintaxis php.vim no está en la versión que puedo ver, pero se utilizó por última vez el 28 de agosto 13.

no es un proyecto de ruby, pero al editar un gran archivo php class (

$ php -w test.inc | wc 2 2410 19220

) noto retrasos significativos cerca de la parte superior de la clase, pero no por encima ni por debajo de la clase, y, notablemente, no hacia la parte inferior de la clase. cuando intento insertar texto nuevo cerca de la parte inferior de la clase, la demora es mínima y parece ser proporcional al número de línea dentro de la clase. "mínimo" significa casi instantáneamente, "significativo" significa de 1 a 1.5 segundos por personaje.

el archivo tiene aproximadamente 1800 líneas con aproximadamente 500 líneas de php legítimas y 1300 líneas de comentarios y documentos. la clase comienza aproximadamente en la línea 30 y termina en la línea aproximadamente 1700. Se admite que es un poco grande, pero bien documentada: - /

si inserto

class dummy { }

delante del original "class originalName {", no hay ningún retraso en el archivo. este antiestético kluge permite a vim / gvim recuperar su capacidad de respuesta y podría considerarse una solución alternativa. note que no hay avance de línea entre los dos, solo

class dummy { } class originalName {

incluso se puede comentar:

/*class dummy {}*/class originalName {

información adicional:

  1. durante esta prueba, el directorio de complementos se movió.

  2. con "set syntax = off", el problema desaparece por completo. esto NO es una solución

  3. configurando el motor de expresiones regulares con

    set regexpengine=1 (or any other number)

    no cambia los resultados de forma apreciable.

basado en estos resultados, sospecho que también el motor de expresión regular. mi punto es que jugar un poco con la sintaxis en los archivos ruby ​​puede conducir a una solución alternativa.

ACTUALIZACIÓN: he encontrado que el problema es "causado" al establecer php_folding en 1 (habilitado). el vimrc que pensé que estaba usando no lo era, pero al menos parte del misterio está resuelto debido a ese error. un simple vimrc como este inducirá el problema (para mí, al menos):

:syntax enable :let php_folding = 1

esto significa que mi problema no tiene ninguna relación con el problema de ruby, pero puede haber algo similar con el archivo ruby.vim. tal vez no.

disculpas por la desviación.