用vim修改系统文件的时候经常会忘记sudo,以至于后来不得不退出然后重写一次,非常困扰啊。Google到一个在vim里面以root权限保存的方法,非常有趣,记下来免得忘记。
:w !sudo tee > /dev/null %
Vim的w
表示将当前文件内容输出到后面的对象中;
tee
能够从stdin读然后分别写出到stdout和目标文件。
%
表示当前文件名。例如写%s
的时候表示在当前文件里都进行匹配。
所以整句命令的意思就是在root模式下用tee读取当前文件缓存的内容导入到当前的文件名里然后把stdout pipe到垃圾桶里。一个更方便的方法是在.vimrc
里设置一下:
cmap w!! w !sudo tee > /dev/null %
网友评论