Deaktivieren Sie vim Plugins für große Dateien

1168
krimson

Ich habe eine benutzerdefinierte Vim-Konfiguration, die ich zusammengestellt habe. Es gibt eine Reihe cooler Plugins und Funktionen, die bei der PHP-Entwicklung hilfreich sind. Wenn ich jedoch eine große Datei (mehrere tausend Zeilen) öffne, führen diese Funktionen zu einer vim Durchforstung.

Was ich gerade mache, ist das Umbenennen von .vimrc in .vimrc- und dann das erneute Starten von vim, wenn mit diesen großen Dateien gearbeitet wird, so dass ich die Standardkonfiguration habe. Ich würde gerne zwischen vimrc wechseln, ohne vim verlassen zu müssen. Denke das ist möglich? Es ist ein bisschen wie das Sourcing der .vimrc-Datei nach Änderungen, aber ich muss eine andere Datei als Quelle verwenden, um meine Standardkonfiguration zu überschreiben.

1
Sie sollten Ihre Konfiguration überprüfen, da zwei oder drei tausend Zeilen * nicht * groß sind. romainl vor 9 Jahren 2
Es führt PHP Code Sniffer beim Speichern aus und ich bearbeite eine schlampige Datei, so dass fast jede Zeile eine Art Warnung enthält. Das ist, was es verlangsamt. krimson vor 9 Jahren 0

3 Antworten auf die Frage

3
Christian Brabandt

Beginne vim mit dem --nopluginArgument. Sie könnten dies möglicherweise als Alias ​​bezeichnen. (Sie können auch nach einer Umgebungsvariablen in Ihrer .vimrc suchen und, falls vorhanden, die Optionen für loadplugins setzen). Es gibt viele Möglichkeiten, wie man es schreiben könnte. Siehe auch die FAQ hier und hier (Beachten Sie das LargeFile-Plugin).

Wie würdest du persönlich damit umgehen, es zu schreiben? krimson vor 9 Jahren 0
Ich würde wahrscheinlich mit einer Umgebungsvariablen gehen Christian Brabandt vor 9 Jahren 0
1
cYrus

Ich denke, Sie können immer vimmit der -uOption beginnen:

vim -u NONE 

Von man vim:

-u Verwenden Sie zur Initialisierung die Befehle in der Datei . Alle anderen Initialisierungen werden übersprungen. Verwenden Sie diese Option, um eine bestimmte Art von Dateien zu bearbeiten. Es kann auch verwendet werden, um alle Initialisierungen zu überspringen, indem der Name "NONE" angegeben wird. Weitere Informationen finden Sie unter ": help initialization" in vim.

Gibt es eine Möglichkeit, dies in einem einzigen vimrc zu tun, um nicht zu beenden und wieder in vim zurückzukehren? Wie eine Benutzerfunktion, die umschaltet, welche .vimrc verwendet wird? krimson vor 9 Jahren 0
Dies geht über mein Vim-Know-how hinaus, aber ich bin mir sicher, dass Sie Ihre eigene Funktion schreiben können, die "langsame" Plugins deaktiviert und wann immer Sie möchten, es an einen Tastendruck binden oder es sogar für bestimmte Dateigrößen / Erweiterungen automatisch auslösen können. Diese Antwort ist nur eine bessere Alternative, wenn Sie Ihre `.vimrc'-Datei jedes Mal umbenennen. cYrus vor 9 Jahren 0
0
Ben

Die Kommentare zu Ihrer Frage zeigen, dass Ihr Problem ein benutzerdefinierter Befehl ist, der bei jedem Speichern der Datei ausgeführt wird.

Eine Lösung besteht darin, Ihren benutzerdefinierten Befehl zu bearbeiten, um einige Variablen zu überprüfen. Wenn diese Variable nicht existiert oder den Wert "false" hat, führen Sie Ihren Befehl aus. Ansonsten überspringen Sie die Ausführung des Befehls. Wenn Sie das Schreiben schnell ausführen möchten, müssen Sie lediglich die Variable auf true setzen. Sie können dies in einem Befehl tun, um es einfacher zu machen. Zum Beispiel,

... autocmd BufWritePost * if !exists('b:my_checker_skip_check') || !b:my_checker_skip_check | call DoMyCheck() | endif ... command! MyCheckDisable let b:my_checker_skip_check = 1 command! MyCheckEnable unlet b:my_checker_skip_check 
Genial. Jetzt muss ich nur noch herausfinden, wo der Code ist, um diese Überprüfung auszuführen. krimson vor 9 Jahren 0