debugging - commands - ¿Cómo ver qué plugins hacen que Vim sea lento?
vim php (5)
Encontré otro método vim buildin muy útil para mostrar exactamente los mensajes de tiempo mientras cargaba tu .vimrc.
vim --startuptime timeCost.txt timeCost.txt
Por favor, corre:
:help --startuptime
en VIM para obtener más información.
¿Hay una manera de perfilar complementos Vim?
Mi MacVim se vuelve más lento y más lento cuando abro un .py
grande. Sé que podría deseleccionar todos los complementos y volver a seleccionar uno por uno para comprobar cuál es el culpable, pero ¿existe una manera más rápida?
Mi dotvim está aquí: https://github.com/charlax/dotvim
Me ha resultado útil imprimir toda la actividad de Vim en un archivo iniciando Vim con la opción -V
:
vim -V12log
Esto proporciona la máxima verbosidad (nivel 12) y lo envía al log
archivos. Luego puede realizar algunas acciones Vim que sabe que son lentas y luego ver qué funciones / asignaciones se están llamando internamente.
Podría ser un complemento o el resaltado de sintaxis; intente a :syntax off
cuando esto sucede y vea si Vim se acelera instantáneamente.
Con los complementos, una "lentitud general" generalmente proviene de autocomandos; a :autocmd
enumera todas. Investiga matando a algunos de ellos a través de :autocmd! [group] {event}
:autocmd! [group] {event}
. Pase de eventos más frecuentes (es decir, CursorMoved[I]
) a eventos menos frecuentes (por ejemplo, BufWinEnter
).
Si puede reproducir de manera confiable la lentitud, una búsqueda binaria podría ayudar: Aleje la mitad de los archivos en ~/.vim/plugin/
, luego el otro, repita en el conjunto que era lento.
Si realmente necesita mirar debajo del capó, obtenga una versión Vim que tenga el comando :profile
habilitado. (No es la versión BIG Windows de vainilla, pero sí la que viene con Cygwin; además, la autocompilación es bastante fácil en la mayoría de las distribuciones.)
Puede utilizar el soporte de perfiles incorporado: después de iniciar vim do
:profile start profile.log
:profile func *
:profile file *
" At this point do slow actions
:profile pause
:noautocmd qall!
(a diferencia de dejar noautocmd
no es realmente necesario, solo hace que vim salga más rápido).
Nota: no obtendrá información sobre las funciones que se eliminaron antes de que se cierre vim.
Si tiene problemas para que las operaciones de actualización de pantalla ( ^L
, desplazamiento, etc.) sean lentas, su problema puede ser un archivo de resaltado de sintaxis ineficiente. Puede probar esto deshabilitando temporalmente el resaltado de sintaxis ( :syn off
) y viendo si el problema desaparece; Si desea profundizar en los detalles, puede :syntime
un perfil del archivo de sintaxis actual utilizando :syntime
:
- Abra un archivo que cause problemas de rendimiento de resaltado de sintaxis.
- Ejecutar
:syntime on
para comenzar a perfilar. - Desplácese un poco por el archivo.
- Ejecutar
:syntime report
para generar un informe. Los patrones que figuran primero en el informe son los que tardaron más tiempo en procesarse.