Comment voir quels plugins rendent vim lent?
Existe - t-il un moyen de profiler les plugins Vim?
Mon MacVim devient de plus en plus lent lorsque j'ouvre un grand .py
. Je sais que je pourrais désélectionner tous les plugins et resélectionner un par un pour vérifier quel plugin est le coupable, mais y a-t-il un moyen plus rapide?
Mon dotvim est ici: https://github.com/charlax/dotvim
5 réponses
Vous pouvez utiliser le support de profilage intégré: après le lancement de Vim do
:profile start profile.log
:profile func *
:profile file *
" At this point do slow actions
:profile pause
:noautocmd qall!
(contrairement à quitter noautocmd
n'est pas vraiment nécessaire, cela rend vim plus rapide).
REMARQUE: Vous n'obtiendrez pas d'informations sur les fonctions supprimées avant la fermeture de vim.
J'ai trouvé une autre méthode de construction vim très utile pour afficher exactement les messages de synchronisation lors du chargement de votre .vimrc.
vim --startuptime timeCost.txt timeCost.txt
S'il vous Plaît exécuter:
:help --startuptime
Dans VIM pour obtenir plus d'informations.
Il pourrait s'agir d'un plugin ou de la coloration syntaxique; essayez un :syntax off
lorsque cela se produit et voyez Si Vim devient instantanément plus rapide.
Avec les plugins, une" lenteur générale " provient généralement des autocommands; un :autocmd
les répertorie tous. Enquêter en tuant certains d'entre eux via :autocmd! [group] {event}
. Passez d'événements plus fréquents (c'est-à-dire CursorMoved[I]
) à des événements moins fréquents (par exemple BufWinEnter
).
Si vous pouvez reproduire de manière fiable la lenteur, une recherche binaire peut vous aider: éloignez la moitié des fichiers dans ~/.vim/plugin/
, puis l'autre, répétez dans l'ensemble qui était lent.
Si vous avez vraiment besoin de regarder sous le capot, obtenez une version Vim avec la commande :profile
activée. (Pas la version vanilla BIG Windows, mais celle qui est livrée avec Cygwin l'a; en outre, l'auto-compilation est assez facile sous la plupart des distributions.)
J'ai trouvé utile d'imprimer toute l'activité Vim dans un fichier en démarrant Vim avec l'option -V
:
vim -V12log
Cela fournit la verbosité maximale (Niveau 12) et la sort dans le fichier log
. Vous pouvez ensuite effectuer des actions Vim que vous savez lentes, puis voir quelles fonctions/mappages sont appelés en interne.
Si vous rencontrez des problèmes avec les opérations de mise à jour d'écran (^L
, le défilement, etc) étant lent, votre problème peut être un fichier de coloration syntaxique inefficace. Vous pouvez tester cela en désactivant temporairement la coloration syntaxique (:syn off
) et voir si le problème disparaît; si vous voulez creuser dans les détails, vous pouvez profiler le fichier de syntaxe actuel en utilisant :syntime
:
- Ouvrez un fichier qui provoque des problèmes de performances de coloration syntaxique.
- exécutez
:syntime on
pour lancer le profilage. - défilement dans le fichier, un peu.
- Exécuter
:syntime report
pour générer un rapport. Les modèles énumérés en premier dans le rapport sont ceux qui ont pris le plus de temps à traiter.