¿Hay alguna forma de perfilar los complementos de Vim?
Mi MacVim se vuelve más y más lento cuando abro un archivo grande .py
. Sé que podría anular la selección de todos los complementos y volver a seleccionar uno por uno para verificar qué complemento es el culpable, pero ¿hay alguna forma más rápida?
Mi dotvim está aquí: https://github.com/charlax/dotvim
debugging
optimization
vim
macvim
charlax
fuente
fuente
.py
archivos.autocmd
corazonada de Ingo Karkat me parece la más plausible.autocmd
se ve bien. Solo lo intenté pero Vim no es lento en este momento.folding=syntax
puede disminuir la velocidad. Probadofolding=manual
y ahora todo funciona bienRespuestas:
Puede utilizar el soporte de creación de perfiles incorporado: después de iniciar vim do
(a diferencia de dejar de fumar,
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 vim salga.
fuente
:set more | verbose function {function_name}
le mostrará el contenido de la función y dónde se encuentra.profile.log
es un archivo en el directorio actual de su sesión de Vim.profile.log
para ver la lista de funciones ordenadas por tiempo total (meprofile.log
pareció inútil antes de encontrar que hay una lista ordenada al final).Encontré otro método vim buildin muy útil para mostrar exactamente los mensajes de tiempo mientras cargaba su .vimrc.
Por favor, corre:
en VIM para obtener más información.
fuente
IM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug 10 2013 14:33:40)
-V
mostró que era un no local$HOME
causando el problema:e
para actualizar el archivo. Ordene el archivo en su lugar de acuerdo con el tiempo total empleado para cada operación, así:%! sort -k2 -nr
Podría ser un complemento o el resaltado de sintaxis; pruebe
:syntax off
cuando ocurra esto y vea si Vim se vuelve más rápido al instanteCon los complementos, una "lentitud general" generalmente proviene de los comandos automáticos; A los
:autocmd
enumera a todos. Investiga matando a algunos de ellos a través de:autocmd! [group] {event}
. Proceda de los eventos más frecuentes (es decirCursorMoved[I]
) a los menos frecuentes (pBufWinEnter
. Ej .).Si puede reproducir de manera confiable la lentitud, una búsqueda binaria podría ayudar: aleje la mitad de los archivos
~/.vim/plugin/
y luego la otra, repita en el conjunto que fue lento.Si realmente necesita mirar debajo del capó, obtenga una versión de Vim que tenga el
:profile
comando habilitado. (No es la versión GRANDE de Windows de vainilla, pero la que viene con Cygwin la tiene; además, la autocompilación es bastante fácil en la mayoría de las distribuciones).fuente
He encontrado útil imprimir toda la actividad de Vim en un archivo iniciando Vim con la
-V
opción:Esto proporciona la máxima verbosidad (nivel 12) y la envía al archivo
log
. Luego puede realizar algunas acciones de Vim que sabe que son lentas, y luego ver qué funciones / asignaciones se están llamando internamente.fuente
Si tiene problemas con las operaciones de actualización de pantalla (
^L
desplazamiento, etc.) que son lentas, su problema puede ser un archivo de resaltado de sintaxis ineficiente. Puede probar esto deshabilitando temporalmente el resaltado de sintaxis (:syn off
) y ver si el problema desaparece; si desea profundizar en los detalles, puede perfilar el archivo de sintaxis actual usando:syntime
::syntime on
para comenzar a perfilar.:syntime report
para generar un informe. Los patrones enumerados primero en el informe son los que tomaron más tiempo para procesar.fuente