以管理员权限保存vim打开的readonly文件

命令     :w ! sudo tee % > /dev/null
 
该命令会把缓冲区的内容作为标准输入传给指定的{cmd}, {cmd} 可以是任何外部的命令或程序。這裡調用了外部命令tee以sudo 权限运行保存。命令中符号 % 是vim 当中一个只读寄存器的名字,总保存着当前编辑文件的文件路径,这里就会展开为当前文件的完整路径/etc/profile. 然后缓冲区的内容将当做标准输入,覆盖该编辑文件的内容。vim 检测到该文件被一个外部程序修改,就会跳出提示选择。然而这里的文件和缓冲区的内容是一致的。
 
其他命令::w !sudo sh -c "cat >'%'"   以及    :w !sudo tee "%"
posted @ 2018-04-03 10:29  NoctisYang  阅读(2295)  评论(0编辑  收藏  举报