Puedo usar vim -u filename
para usar en filename
lugar de mi predeterminado .vimrc
. Estoy usando este método al cambiar los contextos de usuario ( su
) para usar mi .vimrc
aunque se ejecute como superusuario.
¿Cómo puedo lograr lo mismo también para la carpeta, que por defecto es ~/.vim
para poder apuntar Vim desde la línea de comandos a una carpeta alternativa?
Lo que quiero lograr
De acuerdo, supongamos usuario joe
( HOME=/home/joe
) y usuario root
( HOME=/root
). El usuario joe
tiene un conjunto de alias para vim
este aspecto (pero originalmente configurado usando la $HOME
variable para hacer esta dinámica):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Luego, el usuario joe
hace algo en la línea de sudo su -
(pero con magia adicional), lo que resulta en que se carguen las .bashrc
otras golosinas . El usuario ahora tiene exactamente el mismo alias para establecer como se muestra arriba./home/joe
root
root
vim
El problema es que esto .vimrc
se usa en varios sistemas y en varios escenarios. A menudo se llama a la cuenta de Joe joe
, pero a veces será algo similar local.joe
o lo que sea, lo que da como resultado un valor diferente para $HOME
. Así que codificar una ruta absoluta a la ~/.vim
carpeta no parece ser una buena idea. Sin embargo, en nuestro escenario anterior, el usuario root
no tiene una carpeta /root/.vim
que, sin embargo, se espera que exista de forma predeterminada a través de loaded .vimrc
( /home/joe/.vimrc
).
Lo que quiero lograr, preferiblemente en la línea de comando, es hacer que Vim use complementos, etc., desde abajo /home/joe/.vim
cuando se inicia como root
(suponiendo que alias
se configure como se muestra, se pueden ignorar otros casos). Si hay algún método dinámico a través de VimScript, proporcione punteros. Pero $HOME
creo que usar variables como las que conducirían a una captura 22.
ln
. como 'mv ~ / .vim ~ / .vim-whatever && ln -s ~ / .vim-whatever ~ / .vim', haga lo mismo para.vimrc
. envuelva todo eso con un poco de alias bash para que pueda cambiar fácilmente de una forma u otra