rub*_*bik 10 users root permissions
我的自定义 Vim 文件~/.vim
和设置在~/.vimrc
. 但是,有时我必须编辑一些文件/etc
等等。
如果我这样启动 Vim:
$ sudo vim /etc/rc.conf
Run Code Online (Sandbox Code Playgroud)
我丢失了我的配置,因为 Vim 使用它的默认配置。那么:如何以 root 权限运行 Vim 来编辑文件而不丢失我的用户设置(位于我的主目录中)?
我试过了:
$ su username -c "vim /usr/lib/python2.7/setuptools/dist.py"
Run Code Online (Sandbox Code Playgroud)
但是 Bash 给了我Permission denied
. 但是,上述命令适用于例如:/etc/acpi/handler.sh
。这是为什么?
注意:用户名不是 root。
Ran*_*832 16
而不是sudo vim /etc/rc.conf
使用sudoedit /etc/rc.conf
或sudo -e /etc/rc.conf
。您可能需要将 EDITOR 环境变量设置为 vim。这将以普通用户身份运行 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 的主目录中的符号链接或通过硬编码绝对路径来解决。