У меня есть мои собственные файлы Vim ~/.vim
и настройки в ~/.vimrc
. Тем не менее, иногда мне приходится редактировать некоторые файлы /etc
и тому подобное.
Если я начну Vim, как это:
$ sudo vim /etc/rc.conf
Я теряю свой конфиг, так как Vim использует его по умолчанию. Итак: как я могу запустить Vim с правами root для редактирования файлов без потери настроек моего пользователя (которые находятся в моем домашнем каталоге)?
Я пытался:
$ su username -c "vim /usr/lib/python2.7/setuptools/dist.py"
но Баш дает мне Permission denied
. Тем не менее, приведенная выше команда работает, например , для: /etc/acpi/handler.sh
. Это почему?
Примечание: имя пользователя не root.
источник
sudoedit /etc/rc.conf
иsudo -e /etc/rc.conf
он открывает Vim, но мой ~ / .vimrc не загружается. Что я делаю не так?export EDITOR=vim
сначала - возможно, он пытается запуститьvi
, что я не знаю, загружает ли он vimrc, даже если это vim.export EDITOR=vim
сработало. Я думал, что vi не установлен в моей системе и является только символической ссылкой на vim. СпасибоВы можете использовать
-u
vim, чтобы указать, какой rc-файл загрузить. напримерsudo vim -u ~user/.vimrc /etc/rc.conf
если вводить это каждый раз, когда вам нужно сделать это утомительно, создайте псевдоним:
alias sudovim='sudo vim -u ~user/.vimrc'
Обратите внимание, что это
vim -u
может привести к сбою подключаемых модулей или вызываемых rc-файлов, если они загружают другие файлы, относящиеся к $ HOME - $ HOME теперь является домашним каталогом пользователя root, а не пользователем. Это может быть решено, например, с помощью символических ссылок в домашнем каталоге root или жестким кодированием абсолютных путей.источник
alias svim="HOME=/home/user && sudo vim -u $HOME/.vimrc"
.sudo vim -S /home/user/.vimrc /etc/rc.conf
Это эквивалентно:
sudo vim /etc/rc.conf
+:source /home/user/.vimrc
а также может быть псевдонимом:
alias svim='sudo vim -S /home/user/.vimrc'
источник