Posso usare vim -u filename
per usare al filename
posto del mio default .vimrc
. Sto usando questo metodo quando cambio contesti utente ( su
) per usare my .vimrc
anche se in esecuzione come superutente.
Come posso ottenere lo stesso anche per la cartella che per impostazione predefinita è in ~/.vim
modo da poter puntare Vim dalla riga di comando a una cartella alternativa?
Quello che voglio ottenere
Bene, supponiamo user joe
( HOME=/home/joe
) e user root
( HOME=/root
). L'utente joe
ha un alias impostato per vim
questo simile (ma originariamente impostato usando la $HOME
variabile per renderlo dinamico):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Quindi l'utente joe
fa qualcosa sulla falsariga di sudo su -
(ma con aggiunta di magia), con conseguente caricamento delle .bashrc
altre chicche . L'utente ha ora lo stesso alias esatto per set come mostrato sopra./home/joe
root
root
vim
Il problema è che questo .vimrc
è usato su vari sistemi e in vari scenari. Spesso viene chiamato l'account di Joe joe
, ma a volte sarà qualcosa di simile local.joe
o qualunque altra cosa, con un valore diverso per $HOME
. Quindi scrivere un percorso assoluto nella ~/.vim
cartella non sembra essere una buona idea. Tuttavia, nel nostro scenario sopra, l'utente root
non ha una cartella /root/.vim
che, tuttavia, dovrebbe esistere per impostazione predefinita tramite il file caricato .vimrc
( /home/joe/.vimrc
).
Quello che voglio ottenere - preferibilmente dalla riga di comando - è far sì che Vim usi i plugin ecc. Da sotto /home/joe/.vim
quando viene avviato come root
(supponendo che alias
sia impostato come mostrato - altri casi possono essere ignorati). Se esiste un metodo dinamico tramite VimScript, fornire i puntatori. Ma usare variabili come questa $HOME
porterebbe ad una cattura 22, credo.
ln
. come 'mv ~ / .vim ~ / .vim-qualunque cosa && ln -s ~ / .vim-qualunque ~ / .vim` quindi fare lo stesso per.vimrc
. termina tutto con un po 'di alias bash in modo da poter facilmente cambiare in un modo o nell'altro