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

260
demandé sur Teun Zengerink 2012-08-31 14:33:53

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.

413
répondu ZyX 2012-08-31 13:41:27

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.

58
répondu feihu 2013-12-03 08:37:31

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.)

28
répondu Ingo Karkat 2012-08-31 12:04:09

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.

14
répondu Prince Goulash 2012-08-31 11:00:58

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:

  1. Ouvrez un fichier qui provoque des problèmes de performances de coloration syntaxique.
  2. exécutez :syntime on pour lancer le profilage.
  3. défilement dans le fichier, un peu.
  4. 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.
0
répondu duskwuff 2018-09-19 19:30:01