Gibt es eine Möglichkeit, Vim-Plugins zu profilieren?
Mein MacVim wird immer langsamer, wenn ich einen großen .py
Öffne. Ich weiß, dass ich alle Plugins abwählen und einzeln erneut auswählen kann, um zu überprüfen, welches Plugin der Schuldige ist. Gibt es jedoch einen schnelleren Weg?
Mein dotvim ist hier: https://github.com/charlax/dotvim
Sie können die integrierte Profilerstellungsunterstützung verwenden: Nach dem Starten von vim do
:profile start profile.log
:profile func *
:profile file *
" At this point do slow actions
:profile pause
:noautocmd qall!
(Im Gegensatz zum Beenden von noautocmd
ist das Beenden von vim nicht unbedingt erforderlich, es beschleunigt nur).
Hinweis: Sie erhalten keine Informationen zu Funktionen, die vor dem Beenden von vim gelöscht wurden.
Ich habe eine andere sehr hilfreiche vim-Build-Methode gefunden, um die genauen Timing-Meldungen beim Laden Ihrer .vimrc-Datei anzuzeigen.
vim --startuptime timeCost.txt timeCost.txt
Bitte renne:
:help --startuptime
in VIM um weitere Informationen zu erhalten.
Es kann sich um ein Plugin oder die Syntaxhervorhebung handeln. Versuchen Sie in diesem Fall einen :syntax off
und prüfen Sie, ob Vim sofort schneller wird.
Bei Plugins kommt eine "allgemeine Langsamkeit" normalerweise von automatischen Befehlen. Ein :autocmd
listet alle auf. Ermittle, indem du einige von ihnen mit :autocmd! [group] {event}
Tötest. Gehen Sie von häufigeren Ereignissen (d. H. CursorMoved[I]
) Zu weniger häufigen (z. B. BufWinEnter
) über.
Wenn Sie die Langsamkeit einigermaßen zuverlässig reproduzieren können, kann eine binäre Suche hilfreich sein: Verschieben Sie die Hälfte der Dateien in ~/.vim/plugin/
, Und wiederholen Sie die andere in der langsamen Gruppe.
Wenn Sie wirklich unter die Haube schauen müssen, besorgen Sie sich eine Vim-Version, für die der Befehl :profile
Aktiviert ist. (Nicht die Vanilla BIG Windows-Version, sondern die mit Cygwin gelieferte Version. Selbstkompilieren ist unter den meisten Distributionen auch recht einfach.)
Ich fand es hilfreich, alle Vim-Aktivitäten in eine Datei zu drucken, indem ich Vim mit dem -V
Möglichkeit:
vim -V12log
Dies bietet die maximale Ausführlichkeit (Stufe 12) und gibt sie in die Datei log
aus. Sie können dann einige Vim-Aktionen ausführen, von denen Sie wissen, dass sie langsam sind, und dann sehen, welche Funktionen/Zuordnungen intern aufgerufen werden.
Wenn Sie Probleme mit Bildschirmaktualisierungsvorgängen (^L
, Bildlauf usw.) haben, die langsam sind, liegt möglicherweise eine ineffiziente Syntaxhervorhebungsdatei vor. Sie können dies testen, indem Sie die Syntaxhervorhebung (:syn off
) Vorübergehend deaktivieren und prüfen, ob das Problem behoben ist. Wenn Sie in die Details eintauchen möchten, können Sie die aktuelle Syntaxdatei mit :syntime
profilieren:
:syntime on
Aus, um die Profilerstellung zu starten.:syntime report
Aus, um einen Bericht zu erstellen. Die im Bericht zuerst aufgeführten Muster haben die meiste Zeit in Anspruch genommen.