如何在 vi 文本编辑器中获得对文件的 sudo 访问权限?

新手上路,请多包涵

通常在编辑配置文件时,我会用 vi 打开一个,然后当我去保存它时发现我没有输入

sudo vi filename

有没有办法给 vi sudo 权限来保存文件?我似乎记得不久前在查找有关 vi 的一些内容时看到了一些关于此的内容,但现在我找不到它。

原文由 Paul Wicks 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 726
2 个回答

% 替换为当前文件名,因此您可以使用:

 :w !sudo tee %

vim 将检测到文件已更改并询问您是否要重新加载它。通过选择 [L] 而不是 OK 说是。)

作为快捷方式,您可以定义自己的命令。将以下内容放入您的 .vimrc

 command W w !sudo tee % >/dev/null

使用上述内容,您可以键入 :W<Enter> 来保存文件。自从我写了这个,我找到了一个更好的方法(在我看来)来做到这一点:

 cmap w!! w !sudo tee >/dev/null %

这样你就可以输入 :w!! 它将被扩展为完整的命令行,将光标留在最后,所以你可以用你自己的文件名替换 % ,如果你喜欢。

原文由 user3850 发布,翻译遵循 CC BY-SA 4.0 许可协议

一般来说,你不能改变vi进程的有效用户id,但是你可以这样做:

 :w !sudo tee myfile

原文由 Mark Harrison 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题