Das erste, was Sie tun möchten, ist, Vim mit den Standardeinstellungen zu starten:
vim -u NONE -U NONE -N
Das -u NONE
verhindert, -U NONE
dass Vim Ihren vimrc lädt, verhindert , dass Vim Ihren gvimrc lädt, und -N
weist Vim an, den nicht kompatiblen Modus zu verwenden (dies ist nicht erforderlich, aber die meisten Vim-Benutzer sind nicht an den "kompatiblen" Modus gewöhnt ). Beachten Sie, dass die NONE
ist erforderlich in allen Caps zu sein.
In Windows können Sie diese Flags hinzufügen, indem Sie eine neue Verknüpfung 1 erstellen .
Wenn das Problem weiterhin besteht, wissen Sie, dass es nicht in Ihrem vimrc enthalten ist.
Wenn das Problem verschwindet, liegt es an etwas in Ihrer vimrc-Datei.
Es ist nicht mein vimrc!
Hurra! Geh und stell deine Frage. Stellen Sie sicher, dass Sie versucht haben, Vim ohne eine vimrc-Datei zu starten!
Also ist es mein vimrc, was nun?
Wenn Sie dies noch nicht getan haben, möchten Sie wahrscheinlich zuerst eine Sicherungskopie Ihrer vimrc-Datei speichern.
Überprüfen Sie die Plugins
Das nächste, was Sie wahrscheinlich tun möchten, ist, zuerst alle Plugins zu deaktivieren. Plugins können in Vim einiges verändern. Wenn dies das Problem behebt, versuchen Sie herauszufinden,
welches Plug-In verwendet wird, indem Sie es nacheinander erneut aktivieren. Nachdem Sie herausgefunden haben, welches Plugin genau das Problem verursacht, können Sie es versuchen und beheben, indem Sie die Dokumentation dieses Plugins lesen und / oder eine Frage mit dem Tag stellen plugin-<name>
.
Wenn es sich nicht um ein Plugin handelt und Sie keine Ahnung haben, was Ihr Problem verursacht, handelt es sich um ein Testverfahren. Kommentieren Sie eine oder mehrere Zeilen in Ihrem vimrc aus, starten Sie Vim, prüfen Sie, ob das Problem auftritt, und wiederholen Sie diesen Vorgang, bis das Problem nicht mehr auftritt. Der schnellste Weg dies zu tun ist:
- Kommentieren Sie ungefähr die Hälfte Ihrer vimrc-Datei aus (oder entfernen Sie sie).
- Starten Sie Vim neu oder öffnen Sie ein neues Vim (ein erneutes Laden des vimrc ist nicht gut genug, da die Einstellungen nicht deaktiviert sind).
- Ist das Problem jetzt weg? Setzen Sie das Teil, das Sie entfernt haben, wieder ein (es ist nützlich, Vim offen zu halten und Rückgängig zu machen) und wiederholen Sie Schritt 1 für das Teil, das Sie wieder hinzugefügt haben.
- Tritt das Problem weiterhin auf? Fahren Sie mit Schritt 1 fort.
Am Ende sollten Sie eine einzelne Option oder eine Kombination einiger Optionen haben, die Ihr Problem verursachen. Sie können mehr über jede Option in Vim herausfinden, indem Sie Folgendes verwenden:
:help 'option_name'
Die Anführungszeichen sind hier wichtig, es funktioniert normalerweise ohne sie, aber manchmal landen Sie auf der falschen Seite, wenn Sie sie weglassen.
Wenn Sie nach dem Lesen der Hilfeseite immer noch verwirrt sind, wissen Sie, wo Sie eine Frage stellen können ;-)
Debuggen eines einzelnen Plugins
Wenn Sie ein einzelnes Plugin isolieren möchten, vielleicht um eine Frage zu stellen, möchten Sie so wenig wie möglich laden, aber dennoch das Plugin laden. Sie können dies ganz einfach mit der Paketfunktion von Vim tun. Dies erfordert Vim 8 oder eine einigermaßen aktuelle Version von Neovim.
Erstellen Sie ein neues leeres Verzeichnis. ~/plugin
In diesem Beispiel verwenden wir den Pfad. Stellen Sie nun das Plugin in das reguläre pack/plugins/start/$name
Verzeichnis. Zum Beispiel:
git clone https://github.com/fatih/vim-go.git ~/plugin/pack/plugins/start/vim-go
Erstellen Sie eine test-vimrc
Datei mit folgendem Inhalt. Dadurch wird sichergestellt , dass Vim - Plugins aus dem Laden wird ~/plugin
Verzeichnis und nicht das ~/.vim
Verzeichnis:
set nocompatible
set packpath=~/plugin,/usr/share/vim/vimfiles,/usr/share/vim/vim80,/usr/share/vim/vimfiles/after,~/plugin/after
packloadall!
syntax on
filetype plugin indent on
Starten Sie Vim mit:
vim -U NONE -u ~/test-vimrc
Sie haben jetzt eine minimale vimrc mit nur diesem Plugin.
Fußnoten
1 Zum Beispiel: auf 64 - Bit - Windows ist die Abkürzung würde wie folgt aussehen: "C:\Program Files (x86)\Vim\vim74\vim.exe" -u NONE -U NONE -N
. Klicken Sie zum Erstellen mit der rechten Maustaste in den Datei-Explorer, in dem Sie die Verknüpfung erstellen möchten, wählen Sie Neu -> Verknüpfung und fügen Sie den Verknüpfungstext ein. Möglicherweise müssen Sie den Vim-Pfad ändern, wenn Ihr Vim an einem anderen Ort installiert ist.
-U NONE
wenn Sie haben-u NONE
.-D
Speziell für das Debuggen gibt es einen Vim-Parameter, der nach Ausführung des ersten Befehls aus einem Skript in den Debugging-Modus wechselt.Um beispielsweise Vim im Debug-Modus ohne Plugins auszuführen, führen Sie Folgendes aus:
Geben Sie
n
/ einnext
, um die nächste Zeile zu analysieren, und halten Sie gedrückt Enter.Und
cont
oderq
um zurvim
Benutzeroberfläche zurückzukehren.Wenn Sie eine GUI-Version verwenden, geben Sie einen
gui
Befehl in Ihren vimrc ein, um das Debuggen direkt nach diesem Befehl zu starten.Drücken Sie Ctrl+, dum eine Liste der verfügbaren Befehle anzuzeigen
Weiterlesen:
:help debug-scripts
quelle
Versuchen Sie
vim -u NONE -U NONE -N
, wie bereits erwähnt, zunächst sicherzustellen, dass Ihr Vanille-Vim ordnungsgemäß funktioniert.Dann starte vim normal und überprüfe
von innen vim nach dem problem, das alle warnungen und fehler anzeigt.
Zum Schluss starten Sie vim mit dem folgenden Befehl
Das Protokoll erstellt eine aufgerufene Datei
logfile.log
,-V9
gibt die Protokollierungsstufe an und versucht, Ihr Problem zu reproduzieren.quelle
Noch ein Tipp: So höhlenbewusst es auch scheinen mag, ich füge hinzu: "message" in meine .vimrc ein, um zu sehen, was ausgeführt wird und was nicht.
Zum Beispiel
Auf diese Weise kann ich schnell feststellen, ob der if-Block ausgeführt wird usw. Die Meldung wird beim nächsten Start von vim auf der Konsole gedruckt.
quelle
echom
anderen interessanten Befehl verwenden:messages
, erhalten Sie das vollständige Protokoll der zurückgegebenen Nachrichten. Es kann manchmal nützlich sein, sie sich nach dem Start anzusehen.Ich habe festgestellt, dass es hilfreich ist, eine Sammlung von Variablen zu führen, mit denen Sie Teile Ihrer Variablen umschalten
.vimrc
können, um Teile davon zu deaktivieren oder zu aktivieren, ohne dass Sie Kommentare abgeben müssen. Es hat auch den angenehmen Nebeneffekt, dass Sie gezwungen werden, über die Organisation Ihres Unternehmens nachzudenken.vimrc
.Hier ist ein Beispiel eines Abschnitts, der von einem bewacht wird
if
:quelle
Meine vimrc Ladezeit war sehr langsam, ungefähr 400 ms, und ich habe sie nur durch Entfernen dieser Zeile auf 20 ms reduziert:
Stellen Sie sicher, dass Sie keine derartigen externen Befehle aufrufen.
quelle
Hier ist eine sehr einfache Prozedur, um Ihnen den Einstieg zu erleichtern.
:source %
oder ausführen:so $MYVIMRC
quelle