Puedo usar vim -u filenamepara usar en filenamelugar 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 ~/.vimpara 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 joetiene un conjunto de alias para vimeste aspecto (pero originalmente configurado usando la $HOMEvariable para hacer esta dinámica):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Luego, el usuario joehace algo en la línea de sudo su -(pero con magia adicional), lo que resulta en que se carguen las .bashrcotras golosinas . El usuario ahora tiene exactamente el mismo alias para establecer como se muestra arriba./home/joerootrootvim
El problema es que esto .vimrcse 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.joeo lo que sea, lo que da como resultado un valor diferente para $HOME. Así que codificar una ruta absoluta a la ~/.vimcarpeta no parece ser una buena idea. Sin embargo, en nuestro escenario anterior, el usuario rootno tiene una carpeta /root/.vimque, 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/.vimcuando se inicia como root(suponiendo que aliasse 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 $HOMEcreo 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