Ich kann verwenden vim -u filename
zu verwenden , filename
anstatt 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 ~/.vim
so 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 joe
verfügt über einen Alias-Satz, vim
der wie folgt aussieht (der ursprünglich mithilfe der $HOME
Variablen festgelegt wurde, um diese Dynamik zu erzielen):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Dann joe
tut der Benutzer etwas in der Art von sudo su -
(aber mit zusätzlicher Magie), was dazu führt, dass die .bashrc
und andere Leckereien /home/joe
geladen werden müssen root
. Der Benutzer root
hat jetzt genau den gleichen Alias vim
wie oben angegeben.
Das Problem ist, dass dies .vimrc
auf verschiedenen Systemen und in verschiedenen Szenarien verwendet wird. Häufig wird Joes Konto aufgerufen joe
, aber manchmal ist es etwas wie local.joe
oder was auch immer, was zu einem anderen Wert für führt $HOME
. Es ~/.vim
scheint also keine gute Idee zu sein, einen absoluten Pfad zum Ordner zu programmieren. In unserem obigen Szenario hat der Benutzer root
jedoch 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/.vim
wenn es gestartet wird als root
(vorausgesetzt, das alias
ist 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 $HOME
sie 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