Je peux utiliser vim -u filename
pour utiliser à la filename
place de ma valeur par défaut .vimrc
. J'utilise cette méthode lors du changement de contextes utilisateur ( su
) pour utiliser mon .vimrc
même si je cours en tant que superutilisateur.
Comment puis - je obtenir le même aussi pour le dossier qui est par défaut ~/.vim
pour que je puisse pointer Vim de la ligne de commande à un autre dossier?
Ce que je veux réaliser
D'accord, supposons user joe
( HOME=/home/joe
) et user root
( HOME=/root
). L'utilisateur joe
a un ensemble d'alias vim
qui ressemble à ceci (mais initialement défini en utilisant la $HOME
variable pour rendre cette dynamique):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Ensuite, l'utilisateur joe
fait quelque chose dans le sens de sudo su -
(mais avec de la magie supplémentaire), ce qui entraîne le chargement des .bashrc
et d'autres goodies . L'utilisateur a maintenant exactement le même alias pour l' ensemble comme indiqué ci-dessus./home/joe
root
root
vim
Le problème est que cela .vimrc
est utilisé sur divers systèmes et dans divers scénarios. Souvent, le compte de Joe est appelé joe
, mais parfois ce sera quelque chose comme local.joe
ou quoi que ce soit d'autre, résultant en une valeur différente pour $HOME
. Donc, coder en dur un chemin absolu vers le ~/.vim
dossier ne semble pas être une bonne idée. Cependant, dans notre scénario ci-dessus, l'utilisateur root
ne possède pas de dossier /root/.vim
qui, cependant, devrait exister par défaut via le chargé .vimrc
( /home/joe/.vimrc
).
Ce que je veux réaliser - de préférence sur la ligne de commande - est de faire en sorte que Vim utilise des plugins, etc. /home/joe/.vim
quand il est démarré en root
(en supposant que la valeur alias
est définie comme indiqué - d'autres cas peuvent être ignorés). S'il existe une méthode dynamique via VimScript, veuillez fournir des pointeurs. Mais l'utilisation de variables telles que $HOME
conduirait à un catch 22, je pense.
ln
. comme 'mv ~ / .vim ~ / .vim-quel que soit && ln -s ~ / .vim-quel que soit ~ / .vim` puis faites de même pour.vimrc
. envelopper tout cela avec un alias bash afin que vous puissiez facilement basculer dans un sens ou dans l'autre