将sudo与.vimrc一起使用

nob*_*are 44 vim centos

我正在使用CentOS并.vimrc在我的/home目录中创建了一个文件.我通过创建一个txt文件来测试它,是的,这很好.现在,我的项目文件在我的/srv目录中打开了SELinux.我尝试打开一个文件:vim README.txt是的,我的.vimrc设置仍在应用中.

现在,因为我在/srv目录中,只是vim意味着我的文件是只读的.所以,我这样做sudo vim README.txt是为了能够编辑文件.现在,问题在于,一旦我这样做sudo,我的.vimrc设置都没有应用.我尝试.vimrc/srv文件夹中创建副本,但这也无效.

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

Exp*_*lls 71

sudoedit而不是sudo vim.无论如何你应该这样做.确保您的EDITOR环境变量设置为vim(可能已经是,或者vim是默认值; .profile如果需要,您可以在模拟中设置它).

  • @noblerare为了安全.可能对你自己的系统无关紧要,但对于一个拥有`sudoers`权限的许多用户而言,这对系统来说非常重要.你可以从`vim`运行任何shell命令,所以使用`sudo vim`你可以做任何事情!`sudoedit`创建文件的临时副本,但不提供此类权限.`man sudoedit`和`man visudo` (12认同)
  • 完善.谢谢!一个概念性的问题:我为什么要在`sudo vim`上使用`sudoedit`? (5认同)
  • 请注意,实际文件在退出之前不会更新 - 如果您想在不关闭 vim 的情况下保存并测试更改,则不太好。 (5认同)
  • 另外,`$ sudo -e filename`. (3认同)

lee*_*ade 22

如图所示在这里,你可以使用以下命令:

sudo -E vim README.txt
Run Code Online (Sandbox Code Playgroud)

从手册页:

-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.
Run Code Online (Sandbox Code Playgroud)

接受的答案是最安全的.但是这个更灵活,因为我可以使用sudo -E operation任何操作,我不必事先配置其他任何东西.


小智 8

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

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

  • 这里唯一正确的答案 (2认同)