如何退出 Vim 的只读模式?

如何退出 Vim 的只读模式?

我以只读模式打开了一个文件;有没有办法退出只读模式?

w每次要保存时都要记得在后面加上感叹号,这很不方便。

答案1

你可以这样做:

:set noro

这会取消设置只读标志,但如果底层文件仍然不可写,那么 vim 仍然无法写入它。

答案2

你可以chmod从 vim 中运行:

:!chmod +w %

!表示运行 shell 命令,%是当前文件名。您也可以强制文件写入:

:w!

答案3

此外Michael Mrozek 的回答,您可以在您的文件中添加一行.vimrc,允许您写入您忽略使用提升权限打开的文件:

" Allows writing to files with root priviledges
cmap w!! w !sudo tee % > /dev/null

如果文件是只读的,您只需输入:w!!,系统会提示您输入密码,然后文件就会成功写入。

答案4

我开始了,虽然有点晚了,也许你已经解决了你的疑问;)我在任何评论中都没有看到我所知道的方式维姆,所以,我补充一下:

编辑文件后,按:w:wq,您会看到烦人的消息“E45“只读”选项已设置(添加!以覆盖)

E45 只读选项已设置(添加 ! 覆盖)

您可以输入

:w !sudo tee %

w !sudo tee %

  • w写入缓冲区,
  • !sudo使用 sudo 调用 shell,
  • tee将 的输出重定向vim :w到带有 tee 的输出,并且
  • %是当前文件名

这应该可以解决问题。请注意,这将提示您在 vim 中重新加载文件,为此您必须按 L

在此输入图像描述

相关内容