Frage

Was ist die bevorzugte, allgemeine Methode zum Debuggen / Verfolgen von vim-Plugins?Angenommen, ich habe ein ziemlich ausgeklügeltes Plugin Foo , das auf eine Taste gedrückt wird F9 öffnet ein neues Fenster mit Datei-Browser und gibt die Möglichkeit, eine Datei auszuwählen, danach wird der Dateiname in das Hauptfenster kopiert.Ich würde gerne sehen, was aufgerufen wird, wenn ich die Taste drücke F9 schlüssel, eine Art Anrufverfolgung.

War es hilfreich?

Lösung

Der beste Weg, den ich gefunden habe, ist die Verwendung des -V flag beim Starten von (g) vim.Sie können eine Ablaufverfolgungsebene angeben N und einen Dateinamen für das geschriebene Protokoll:

$ vim -V[N]{filename}

Dann werden für jede Datei, die bezogen wird, Ablaufverfolgungsnachrichten ausgegeben.(Sehen :help -V für weitere Informationen.)

Das Durchsuchen der resultierenden Protokolldatei kann schmerzhaft sein, ist aber normalerweise ziemlich informativ.Ich finde es am besten, die Protokolldatei vor und nach dem Triggerereignis anzuzeigen (Drücken <F9> in Ihrem Fall), um sich ein Bild davon zu machen, wann es passiert.

Andere Tipps

Wenn Sie vim bereits geöffnet haben, versuchen Sie, den Befehl manuell unter dem integrierten Debugger von VIM auszuführen.

1) Finden Sie heraus, was vim macht, wenn Sie die Taste drücken

:map <F-9>

2) Führen Sie den zugeordneten Befehl manuell unter Debugger aus

:debug _mapped_command_

3) Im Moment sollten Sie in den Debugger fallen gelassen werden, also

set verbose=20

4) Und drücken Sie abschließend n und Eingabetaste, um das Skript weiter auszuführen

An diesem Punkt sollten Sie eine ganze Reihe von Ausgaben auf dem Bildschirm sehen.Sie können die Leertaste drücken, um den Bildschirm zu scrollen, j / k, um sich zeilenweise zu bewegen.

Jede Ausgabe, die mit "Line #:" beginnt, ist die Zeile, die vim zu diesem Zeitpunkt ausführt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top