有时当我使用vim some/path/newfile
创建文件时,vim允许我编辑它,只是在我尝试保存更改时抱怨。
E212 Can't open file for writing.
这似乎只在新文件位于系统目录中时才会发生。
:w!
不会覆盖此错误。
如何编写当前缓冲区,而不必将其保存到临时位置,退出,然后使用sudo重命名它?
答案 0 :(得分:54)
这会询问您输入root密码,然后按照您的要求保存更改:
:w !sudo tee %
然后在提示符下键入(L)oad,在保存文件后重新加载文件。
答案 1 :(得分:10)
将此行添加到.vimrc
:
cmap w!! %!sudo tee > /dev/null
然后你可以做
:w!!
当你进入这个位置时,它将使用sudo写入文件。非常方便。
答案 2 :(得分:7)
您可以先 mkdir ,然后保存。
答案 3 :(得分:2)
如果您想要一个强大,易于记忆的解决方案,并且不介意安装插件,请尝试SudoEdit.vim - Edit Files using sudo or su or any other tool。
答案 4 :(得分:2)
如果是Windows 7或更高版本中的情况,请以管理员身份运行VI编辑器。右键单击应用程序,然后选择"以管理员身份运行"。这个问题将得到解决。此外,该错误是由于管理权限造成的。
答案 5 :(得分:1)
你可以尝试分两步完成,首先创建文件夹' some'和'路径'通过使用mkdir~;第二,你进入'路径'文件夹,使用命令:sudo vim newfile.then save it
答案 6 :(得分:1)
您可以通过使用“ sudo”开始编辑会话来避免此问题。
sudo vi name-of-file
答案 7 :(得分:0)
对于它的价值,您可能还想确保尝试存储文件的分区中有足够的存储空间。我不得不释放/ home驱动器中的一些空间,从而解决了该问题。
答案 8 :(得分:0)
确保要保存文件的目录存在并且您有权编辑文件。
您可以在Vim中键入:help message
以获得有关此错误消息和其他错误消息的更多信息。出现文档后,尝试通过键入/E212
进行搜索。您也可以在http://vimdoc.sourceforge.net/htmldoc/message.html和CTRL-F上在线查看文档以找到它。