以我的具有 root 权限的用户身份启动 Vim

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.confsudo -e /etc/rc.conf。您可能需要将 EDITOR 环境变量设置为 vim。这将以普通用户身份运行 vim 本身,使用您的普通配置,在文件的副本上运行,当您退出时它将复制回来。


cas*_*cas 6

您可以使用-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 的主目录中的符号链接或通过硬编码绝对路径来解决。