vim不退出vim保存没权限的文件

时间:2021-08-22 07:13:46
不退出vim保存没权限的文件
Fri Aug 12 06:58:54 EDT 2016

如果以普通用户zhuyichen编辑/etc/passwd, 将没有权限保存, 一般的做法是退出vim,
重新以sudo vim 打开.
用这个命令可以不退出vim而保存文件 :
:w !sudo tee %

这个命令是这样工作的, w ! sudo tee 把当前文件缓冲区内容作为tee的输入, %是当前
打开文件的路径, 就是/etc/passwd, 它作为tee的输出目标. 你输了%后按tab会把它展开
成/etc/passwd.
然后你会看到和一般sudo一样的要求输密码的提示, 输了密码后, 新内容就保存了, 然后
vim会检测到文件被另一个程序, 这里是tee, 修改了, 会问你保留缓冲区的版本到文件,
还是载入新的文件内容, 这里, 新内容就是缓冲区的内容, 你选哪个是一样的.