Ich kann verwenden vim -u filenamezu verwenden , filenameanstatt mein Standard .vimrc. Ich verwende diese Methode, wenn ich zwischen Benutzerkontexten ( su) wechsle , um my zu verwenden .vimrc, obwohl ich als Superuser ausgeführt werde.
Wie kann ich dasselbe auch für den Ordner erreichen, der standardmäßig ~/.vimso eingestellt ist , dass ich Vim von der Befehlszeile auf einen alternativen Ordner verweisen kann ?
Was ich erreichen will
Okay, nimm user joe( HOME=/home/joe) und user root( HOME=/root) an. Der Benutzer joeverfügt über einen Alias-Satz, vimder wie folgt aussieht (der ursprünglich mithilfe der $HOMEVariablen festgelegt wurde, um diese Dynamik zu erzielen):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Dann joetut der Benutzer etwas in der Art von sudo su -(aber mit zusätzlicher Magie), was dazu führt, dass die .bashrcund andere Leckereien /home/joegeladen werden müssen root. Der Benutzer roothat jetzt genau den gleichen Alias vimwie oben angegeben.
Das Problem ist, dass dies .vimrcauf verschiedenen Systemen und in verschiedenen Szenarien verwendet wird. Häufig wird Joes Konto aufgerufen joe, aber manchmal ist es etwas wie local.joeoder was auch immer, was zu einem anderen Wert für führt $HOME. Es ~/.vimscheint also keine gute Idee zu sein, einen absoluten Pfad zum Ordner zu programmieren. In unserem obigen Szenario hat der Benutzer rootjedoch keinen Ordner /root/.vim, der jedoch standardmäßig über loaded .vimrc( /home/joe/.vimrc) vorhanden sein soll.
Was ich - vorzugsweise auf der Kommandozeile - erreichen möchte, ist, Vim dazu zu bringen, Plugins usw. von unten zu verwenden, /home/joe/.vimwenn es gestartet wird als root(vorausgesetzt, das aliasist wie gezeigt eingestellt - andere Fälle können ignoriert werden). Wenn es eine dynamische Methode über VimScript gibt, geben Sie bitte Zeiger an. Aber die Verwendung von Variablen, wie $HOMEsie zu einem Haken 22 führen würden, denke ich.
ln. wie 'mv ~ / .vim ~ / .vim-whatever && ln -s ~ / .vim-whatever ~ / .vim` dann mache dasselbe für.vimrc. wickeln Sie das alles mit ein paar Bash-Alias ab, damit Sie leicht die eine oder andere Richtung wechseln können