有些时候用vim打开一些系统文件需要进行修改,改完之后发现没有进行sudo操作或者没有切到root权限下,通过网络搜索发现,其实在vim中是可以获取sudo权限并进行保存文件操作的。
:w ! sudo tee %
命令:w ! {cmd}, 让vim执行一个外部命令{cmd},然后把当前缓冲区的内容从stdin出入。
tee是一个把stdin保存到文件的小工具。
%是vim当中一个只读寄存器的名字,保存着当前编辑文件的文件路径。
所以执行这个命令,首先w!将当前改动保存到了stdin然后切换到sudo权限,使用tee将stdin中的内容保存到当前文件。