J'ai mes fichiers Vim personnalisés et mes ~/.vim
paramètres dans ~/.vimrc
. Cependant, parfois je dois éditer certains fichiers dans /etc
et autres.
Si je démarre Vim comme ceci:
$ sudo vim /etc/rc.conf
Je perds ma configuration car Vim utilise sa configuration par défaut. Alors: comment puis-je exécuter Vim avec les privilèges root pour éditer des fichiers sans perdre les paramètres de mon utilisateur (qui se trouvent dans mon répertoire personnel)?
J'ai essayé:
$ su username -c "vim /usr/lib/python2.7/setuptools/dist.py"
mais Bash me donne Permission denied
. Cependant, la commande ci - dessus fonctionne par exemple pour: /etc/acpi/handler.sh
. Pourquoi donc?
Remarque: le nom d'utilisateur n'est pas root.
la source
sudoedit /etc/rc.conf
etsudo -e /etc/rc.conf
cela ouvre vim, mais mon ~ / .vimrc ne se charge pas. Qu'est ce que je fais mal?export EDITOR=vim
abord - il peut essayer de s'exécutervi
, ce que je ne sais pas s'il charge vimrc même quand c'est vim.export EDITOR=vim
fonctionné. Je pensais que vi n'est pas installé sur mon système et n'est qu'un lien symbolique vers vim. MerciVous pouvez utiliser
-u
pour indiquer à vim quel fichier rc charger. par exemplesudo vim -u ~user/.vimrc /etc/rc.conf
si taper cela chaque fois que vous devez le faire est fastidieux, créez un alias:
alias sudovim='sudo vim -u ~user/.vimrc'
Notez que cela
vim -u
peut entraîner l'échec des plugins ou des fichiers rc appelés s'ils chargent d'autres fichiers par rapport à $ HOME - $ HOME est désormais le répertoire personnel de root, et non celui de l'utilisateur. Cela peut être résolu avec, par exemple, des liens symboliques dans le répertoire personnel de root ou par des chemins absolus de codage en dur.la source
alias svim="HOME=/home/user && sudo vim -u $HOME/.vimrc"
.sudo vim -S /home/user/.vimrc /etc/rc.conf
Cela équivaut à:
sudo vim /etc/rc.conf
+:source /home/user/.vimrc
et peut également être aliasé:
alias svim='sudo vim -S /home/user/.vimrc'
la source