vim-commentary löscht die Zeile, anstatt sie zu kommentieren

0

Ich habe vim-commentary über vim-plug installiert (Sie können meine vollständigen Punktedateien hier mit meiner .vimrc hier sehen ). Wenn ich den gccBefehl verwende und dann in einer Zeile die Nach- unten-Taste (eine Bereichsauswahl) drücke, löscht vim die Zeilen und wechselt in den Einfügemodus, anstatt das Kommentar-Plugin zum Auskommentieren dieser bestimmten Zeile zu verwenden. Es scheint einen Konflikt zwischen einer Art von ccBefehl und zu geben gcc. Mein .vimrc ist hier und läuft :nmap gcczurück: n gcc <Plug>CommentaryLine n gc <Plug>Commentary

jdloft
quelle

Antworten:

0

Wenn ich den Befehl gcc verwende und dann die Abwärtstaste (eine Bereichsauswahl) in einer beliebigen Zeile drücke

Beachten Sie, dass gcc eine Anzahl davor akzeptiert , wie in der Dokumentation gezeigt . Wenn ich gccund <down>hier ausführe , wechselt es nur den Kommentar in der aktuellen Zeile und bewegt den Cursor zum nächsten.

Ich konnte auf Ihrer .vimrc nichts Verdächtiges entdecken. Das Problem wird wahrscheinlich durch eine Interaktion mit einigen der anderen von Ihnen verwendeten Plugins verursacht. Sie können versuchen, die in Vim-FAQ 2.5 beschriebenen Schritte auszuführen . Einige relevante Teile folgen:

2.5. Ich habe ein "xyz" -Problem mit Vim. Wie stelle ich fest, dass ein Problem mit meinem Setup oder mit Vim vorliegt? / Habe ich einen Fehler in Vim gefunden?

Zuerst müssen Sie herausfinden, ob der Fehler in den eigentlichen Laufzeitdateien oder in einem mit Vim gelieferten Plugin liegt oder ob es sich um einen einfachen Nebeneffekt einer Konfigurationsoption aus Ihrer .vimrc- oder .gvimrc-Datei handelt. Starten Sie also zunächst vim wie folgt:

vim -u NONE -U NONE -N -i NONE

Dadurch wird Vim im nicht kompatiblen Modus (-N) gestartet, ohne dass Ihre Viminfo-Datei gelesen wird (-i NONE), ohne dass eine Konfigurationsdatei gelesen wird (-u NONE, wenn keine .vimrc-Datei gelesen wird, und -U NONE, wenn keine .gvimrc-Datei gelesen wird) sogar Plugin.

Wenn der Fehler beim Starten von Vim auf diese Weise nicht auftritt, liegt das Problem entweder an einem Plugin von Ihnen oder an einer Einstellung in einer Ihrer lokalen Setup-Dateien. Sie müssen herausfinden, was den Fehler auslöst, und versuchen, Vim folgendermaßen zu starten:

vim -u NONE -U NONE -N

Wenn der Fehler auftritt, liegt das Problem bei Ihrer .viminfo-Datei. Löschen Sie dann einfach die viminfo-Datei. Wenn der Fehler nicht auftritt, versuchen Sie Folgendes:

vim -u ~/.vimrc --noplugin -N -i NONE

Dies wird einfach Ihre .vimrc als Konfigurationsdatei verwenden, aber keine Plugins laden. Wenn der Fehler dieses Mal auftritt, wird der Fehler möglicherweise durch eine Konfigurationsoption in Ihrer .vimrc-Datei verursacht. Abhängig von der Länge Ihrer vimrc-Datei kann es schwierig sein, den Ursprung in dieser Datei zu ermitteln.

Der beste Weg ist das Hinzufügen des Befehls finish in der Mitte Ihres .vimrc. Starten Sie dann über dieselbe Befehlszeile erneut. Wenn der Fehler weiterhin auftritt, muss der Fehler aufgrund einer Einstellung in der ersten Hälfte Ihrer .vimrc-Datei verursacht werden. Wenn dies nicht der Fall ist, muss sich die problematische Einstellung in der zweiten Hälfte Ihres .vimrc befinden. Verschieben Sie den Befehl: finish in die Mitte der Hälfte, von der Sie wissen, dass sie den Fehler auslöst, und bewegen Sie sich weiter, bis Sie die problematische Option finden. Wenn Ihre .vimrc-Datei 350 Zeilen lang ist, müssen Sie maximal 9 Versuche durchführen, um die fehlerhafte Zeile zu finden (in der Praxis kann dies häufig weiter reduziert werden, da die Zeilen häufig voneinander abhängen).

Wenn das Problem nicht auftritt und nur Ihre .vimrc-Datei geladen wird, muss der Fehler durch ein Plug-in oder eine andere Laufzeitdatei verursacht werden (automatisches Einrücken oder Syntaxskript). Überprüfen Sie die Ausgabe des Befehls: scriptnames, um festzustellen, welche Dateien geladen wurden, und versuchen Sie für jede nacheinander, die einzelnen Dateien zu deaktivieren und festzustellen, welche den Fehler auslösen. Oft haben Dateien, die von vim geladen werden, eine einfache Konfigurationsvariable, um sie zu deaktivieren, aber Sie müssen jede Datei einzeln prüfen.

Natürlich müssen Sie die Prozedur anpassen, damit das Kommentar-Plugin immer geladen ist. Sie können :scriptnamesdamit sicherstellen, dass es tatsächlich geladen ist (Sie sollten wahrscheinlich Ihren Plugin-Manager behalten).

mMontu
quelle
Wie sich herausstellte, war es zufällig so timeoutlen=50. Ich habe vi.stackexchange.com/questions/3964/… erstellt, um zu beantworten, warum.
Jdloft