webentwicklung-frage-antwort-db.com.de

Wie kann man sehen, welche Plugins Vim langsam machen?

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

291
charlax

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.

460
ZyX

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.

70
feihu

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

28
Ingo Karkat

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.

14
Prince Goulash

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:

  1. Öffnen Sie eine Datei, die Syntaxprobleme hervorhebt.
  2. Führen Sie :syntime on Aus, um die Profilerstellung zu starten.
  3. Blättern Sie ein wenig durch die Datei.
  4. Führen Sie :syntime report Aus, um einen Bericht zu erstellen. Die im Bericht zuerst aufgeführten Muster haben die meiste Zeit in Anspruch genommen.
5
duskwuff