当我需要以root用户身份编辑文件并使用sudo vim somefile.conf时,实在令人沮丧,而我无法使用任何键绑定,设置和插件。要以root用户身份进行编辑吗?

我的插件使用的是vim-plug。

评论

附带说明:sudo vim文件最好写成sudo -e文件(前提是您设置了环境变量EDITOR = vim)。

@ lcd047:您应该在评论中添加评论

#1 楼

除了以root身份打开vim外,您还可以通过重定向到tee来简单地另存为root。这是一个示例:

:w !sudo tee % > /dev/null


这对在您的.vimrc中使用别名可能很有用,我使用:Sw

评论


这对我做了很多编辑,然后意识到我应该使用sudoedit很有用,但是对于一般情况,我建议使用sudo -e / sudoedit。

–詹姆斯
15年6月12日在17:26

#2 楼

两件事:


使用$ sudo -e filefile编辑$EDITOR。如果尚未设置export EDITOR=/path/to/vim,则添加$EDITOR
使用香草是对抗插件成瘾的绝佳方法。


评论


-1用于建议插件成瘾恢复(J / K,实际上没有降票)

–罗比·韦克斯(Robbie Wxyz)
15年6月11日在18:57

请注意,它不会像sudo vim一样以root用户身份运行vim。编辑将以您的普通用户身份进行,然后sudo处理更新原始文件。

–詹姆斯
2015年6月12日在2:35

注意:sudo有两个类似的选项:-E和-e。 -E表示“保存器环境”,这不是您想要的环境。 -e依次表示“不要运行命令,而是使用已定义的过程编辑文件”。

–iksemyonov
18年4月5日在9:37

#3 楼

看起来您所要做的就是将root的~/.vimrc~/.vim/链接到您的链接。

只需以root身份运行:

ln -s /home/<user>/.vimrc /root/.vimrc
ln -s /home/<user>/.vim/ /root/.vim/


那应该

(PS我刚刚发现了这个问题,想与其他菜鸟分享。请告诉我是否有更好的方法。)

评论


这通常会引起一些问题,因为某些与vim相关的文件将作为root写入您的主目录中,之后您会在尝试以自己的用户身份运行自己的vim配置时遇到错误。

–卡莱布
15年6月16日在8:04

这是我最喜欢的解决方案。如果我在以自己的用户身份运行vim时遇到任何问题,我会报告。

– david_nash
20年7月5日在23:45

#4 楼

如果您提前知道需要以根用户身份编辑文件,则使用命令sudoedit <file>sudo -e <file>将使您在特殊的环境中进行设置,并使用通常的编辑器首选项进行设置。复制文件并启动编辑器以用户身份对其进行编辑。退出时,文件将以root身份复制回到其原始位置。

这是最安全和建议的方法,但是如果a)您没有提前意识到,则需要以root身份编写或b)想要就地编辑和保存增量更改,则需要其他操作。为此,由smpl提出的使用sudo tee的解决方案无疑是正确的,但是可以对边缘情况进行一些小的改进。值得注意的是,在GUI与控制台界面中处理sudo密码提示的区别值得引起注意。

设置此名称的更简单方法是使用vim-eunuch插件。它有这个特殊的问题,还有一些其他方便的东西组合成一个方便的软件包。用法就像调用:SudoWrite一样简单。我什至使用了稍微方便一些的访问映射:

cmap w!! call SudoWrite()


这应该使您能够使用:w!!以root身份写入任何文件。

#5 楼

另一种选择是运行sudo -E vim somefile.conf进行编辑,这将保留您的环境,因此将使用您的.vimrc和插件。

评论


嘿,好戏!这对于Vi和许多其他命令很有用。

–罗比·韦克斯(Robbie Wxyz)
15年6月15日在17:43

这具有与将配置链接到根目录的主目录相同的副作用:即,任何写入状态数据的vim操作或插件都将在主目录中执行此操作。这些文件最终由root拥有,并且稍后会导致错误,因为普通用户将无法继续使用它们。

–卡莱布
15年6月16日在8:10