在.vimrc 中使用 sudo

我正在使用 CentOS,并在我的 /home目录中创建了一个 .vimrc文件。我通过创建一个文本文件测试了一下,是的,它工作得很好。现在,我将项目文件放在 /srv目录中,并打开了 SELinux。我尝试打开一个文件: vim README.txt,是的,我的 .vimrc设置仍然被应用。

现在,因为我在 /srv目录中,所以简单地执行 vim意味着我的文件是只读的。所以,我做 sudo vim README.txt为了能够编辑文件。现在,问题在于一旦我做了 sudo,我的 .vimrc设置没有一个被应用。我尝试在 /srv文件夹中创建一个 .vimrc的副本,但这也不起作用。

使用 sudo时如何应用 .vimrc设置?

27383 次浏览

使用 sudoedit代替 sudo vim。反正你也应该这么做。确保你的 EDITOR环境变量设置为 vim(可能已经设置了,或者 vim是默认设置,如果需要的话,你可以将它设置为 .profile模拟)。

给你所示,您可以使用以下内容:

sudo -E vim README.txt

来自手册页:

-E    The -E (preserve environment) option indicates to the security policy that the user wishes to preserve their existing environment variables.  The
security policy may return an error if the -E option is specified and the user does not have permission to preserve the environment.

公认的答案是最安全的。但是这个更加灵活,因为我可以在任何操作中使用 sudo -E operation,我不需要事先配置任何其他东西。

其他响应中提供的解决方案可以工作,但不太实用,因为每次编辑文件时都必须输入密码。

我通常有一个 tmux会话打开,其中我是根通过 sudo su,所以我输入我的密码一次在会话的开始,然后可以工作几个小时,而不必再次输入它。

我通过创建以下象征性链接,解决了这里提出的问题: 你好 Ln-s/home/MY-USER-Name/. vimrc. vimrc Ln-s/home/MY-USER-Name/. vim. vim

您可能需要首先删除 /root/.vim/目录。

希望这个能帮上忙

/root/. vimrc 是 sudo vim 的工作目录。

您需要将. vimrc 文件从 /home/ec2-user/. vimrc复制到 /root/. vimrc