Posso usare vim -u filenameper usare al filenameposto 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 ~/.vimmodo 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 joeha un alias impostato per vimquesto simile (ma originariamente impostato usando la $HOMEvariabile per renderlo dinamico):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Quindi l'utente joefa qualcosa sulla falsariga di sudo su -(ma con aggiunta di magia), con conseguente caricamento delle .bashrcaltre chicche . L'utente ha ora lo stesso alias esatto per set come mostrato sopra./home/joerootrootvim
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.joeo qualunque altra cosa, con un valore diverso per $HOME. Quindi scrivere un percorso assoluto nella ~/.vimcartella non sembra essere una buona idea. Tuttavia, nel nostro scenario sopra, l'utente rootnon ha una cartella /root/.vimche, 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/.vimquando viene avviato come root(supponendo che aliassia impostato come mostrato - altri casi possono essere ignorati). Se esiste un metodo dinamico tramite VimScript, fornire i puntatori. Ma usare variabili come questa $HOMEporterebbe 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