Meine Vim Config enthält Plugins , die versuchen , aktuelle Projekt zu handhaben , Build - Tags, etc . Dies ist sehr nützlich für meine tägliche Programmierung in Vim, aber es ist nur ärgerlich, wenn ich Vim für einige schnelle Änderungen verwende, wie zum Beispiel:
- Bearbeiten einer Git-Commit-Nachricht;
- Bearbeiten Sie einen Shell-Befehl, wenn ich Ctrl+xCtrl+ezsh oder bash eingebe.
- usw.
Ich mag das auch --noplugins
nicht, da ich immer noch einige Plugins im Schnellbearbeitungsmodus nutzen möchte, wie Surround, Easy-Motion und viele andere.
Ich möchte also einen "Lichtmodus" (oder "Schnellmodus") haben, in dem einige der Plugins umgangen werden, aber nicht alle.
Meine erste Idee war, ein spezielles Kommandozeilenargument zu haben, das ich in Vimscript analysieren würde, aber schnelles Googeln zeigt, dass es derzeit in Vimscript unmöglich ist (übrigens schrecklich traurig).
Meine zweite Idee ist, beim Ausführen von vim eine Umgebungsvariable festzulegen, wie folgt:
$ VIM_LIGHT_MODE=1 vim
Dies funktioniert in Git:
$ git config --global core.editor 'VIM_LIGHT_MODE=1 vim'
Aber wenn ich das tue EDITOR='VIM_LIGHT_MODE=1 vim'
und Ctrl+xCtrl+edie Shell eingebe, funktioniert es nicht:
edit-command-line:13: command not found: VIM_LIGHT_MODE=1
Dann habe ich Folgendes versucht:, EDITOR="bash -c 'VIM_LIGHT_MODE=1 vim'"
aber es schlägt auch fehl:
vim': -c: line 1: syntax error: unexpected end of file
(Um ehrlich zu sein, sieht dieser besonders komisch aus, es scheint, dass ich falsch verstehe, wie genau er $EDITOR
verwendet wird, und ich bin froh, wenn jemand erklärt, was hier vor sich geht)
Alle anderen Experimente schlugen ebenfalls fehl.
Der einzige Hack, an den ich denken kann, ist, einige zu setzen servername
, wie:
$ vim --servername VIM_LIGHTWEIGHT_MODE
Und dann checken Sie v:servername
in Vimscript ein, aber das ist ein totaler Hack: Dafür ist Servername überhaupt nicht gedacht .
Gibt es einen saubereren Weg, um das zu erreichen, was ich will?
vim
als ausführen vim -u .vimrc-light
.
env
überhaupt nicht bewusst , mein Shell-Fu ist immer noch zu schwach. Erwägen Sie, es als Antwort zu schreiben, damit ich es akzeptieren kann.
env
:EDITOR='env VIM_LIGHT_MODE=1 vim'
.