Ich habe meine benutzerdefinierten Vim-Dateien ~/.vim
und Einstellungen in ~/.vimrc
. Manchmal muss ich jedoch einige Dateien in /etc
und so bearbeiten .
Wenn ich Vim so starte:
$ sudo vim /etc/rc.conf
Ich verliere meine Konfiguration, da Vim die Standardkonfiguration verwendet. Also: Wie kann ich Vim mit Root-Rechten ausführen, um Dateien zu bearbeiten, ohne die Einstellungen meines Benutzers (die sich in meinem Home-Verzeichnis befinden) zu verlieren?
Ich habe versucht:
$ su username -c "vim /usr/lib/python2.7/setuptools/dist.py"
aber Bash gibt mir Permission denied
. Der obige Befehl funktioniert jedoch beispielsweise für : /etc/acpi/handler.sh
. Warum ist das so?
Hinweis: Der Benutzername ist nicht root.
quelle
sudoedit /etc/rc.conf
undsudo -e /etc/rc.conf
und es öffnet vim, aber mein ~ / .vimrc wird nicht geladen. Was mache ich falsch?export EDITOR=vim
zuerst - es wird möglicherweise versucht zu laufenvi
, was ich nicht weiß, ob es vimrc lädt, auch wenn es vim ist.export EDITOR=vim
funktioniert. Ich dachte, vi ist nicht auf meinem System installiert und nur ein Symlink zu vim. DankeSie können
-u
vim mitteilen, welche RC-Datei geladen werden soll. z.Bsudo vim -u ~user/.vimrc /etc/rc.conf
Wenn die Eingabe jedes Mal mühsam ist, erstellen Sie einen Alias:
alias sudovim='sudo vim -u ~user/.vimrc'
Beachten Sie,
vim -u
dass Plugins oder aufgerufene RC-Dateien fehlschlagen können, wenn andere Dateien relativ zu $ HOME geladen werden. $ HOME ist jetzt das Ausgangsverzeichnis von root und nicht das des Benutzers. Dies kann zB mit Symlinks im Home-Verzeichnis von root oder durch Hardcodierung absoluter Pfade gelöst werden.quelle
alias svim="HOME=/home/user && sudo vim -u $HOME/.vimrc"
.sudo vim -S /home/user/.vimrc /etc/rc.conf
Dies entspricht:
sudo vim /etc/rc.conf
+:source /home/user/.vimrc
und kann auch als Alias verwendet werden:
alias svim='sudo vim -S /home/user/.vimrc'
quelle