Comment voir quels plugins ralentissent Vim?

Est-il possible de profiler les plugins Vim?

Mon MacVim ralentit et ralentit 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

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 à la noautocmd n’est pas vraiment nécessaire, elle ne fait que rendre vim plus rapide).

Note: vous n’obtiendrez pas d’informations sur les fonctions qui ont été supprimées avant la fermeture de vim.

J’ai trouvé une autre méthode très utile de build de vim pour afficher exactement les messages de synchronisation lors du chargement de votre fichier .vimrc.

 vim --startuptime timeCost.txt timeCost.txt 

S’il vous plaît courir:

 :help --startuptime 

dans VIM pour obtenir plus d’informations.

Cela pourrait être un plugin ou la coloration syntaxique; essayez une :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 autocommandes; a :autocmd liste tous. Enquêter en tuant certains d’entre eux via :autocmd! [group] {event} :autocmd! [group] {event} . Procédez à partir d’événements plus fréquents (ex: CursorMoved[I] ) à des événements moins fréquents (par exemple BufWinEnter ).

Si vous pouvez reproduire de manière fiable la lenteur, une recherche binary pourrait vous aider: Eloignez 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, procurez-vous une version de Vim avec la commande :profile activée. (Pas la version vanille de BIG Windows, mais celle qui est livrée avec Cygwin l’a aussi; l’auto-compilation est également très facile avec la plupart des dissortingbutions.)

J’ai trouvé utile d’imprimer toutes les activités de Vim dans un fichier en démarrant Vim avec l’option -V :

 vim -V12log 

Cela fournit le maximum de verbosité (niveau 12) et le renvoie au log fichiers. Vous pouvez ensuite effectuer des actions Vim que vous connaissez lentes, puis voir quelles fonctions / mappages sont appelés en interne.