Je peux utiliser vim -u filenamepour utiliser à la filenameplace 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 ~/.vimpour 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 joea un ensemble d'alias vimqui ressemble à ceci (mais initialement défini en utilisant la $HOMEvariable pour rendre cette dynamique):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Ensuite, l'utilisateur joefait quelque chose dans le sens de sudo su -(mais avec de la magie supplémentaire), ce qui entraîne le chargement des .bashrcet d'autres goodies . L'utilisateur a maintenant exactement le même alias pour l' ensemble comme indiqué ci-dessus./home/joerootrootvim
Le problème est que cela .vimrcest 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.joeou quoi que ce soit d'autre, résultant en une valeur différente pour $HOME. Donc, coder en dur un chemin absolu vers le ~/.vimdossier ne semble pas être une bonne idée. Cependant, dans notre scénario ci-dessus, l'utilisateur rootne possède pas de dossier /root/.vimqui, 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/.vimquand il est démarré en root(en supposant que la valeur aliasest 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 $HOMEconduirait à 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