在Linux环境下,如果直接使用VI/VIM命令编辑没有修改权限的文件时,保存的时候就会提示用户无法进行保存操作,一般的解决方法只能是关闭文件重新以sudo权限打开该文件编辑后再保存(前提是用户具有sudo权限)。其实,在VI/VIM模式下通过一些简单的命令,就能在不关闭当前文件的情况下达到保存文件的目的。
方法一
1 | 输入命令:%! sudo tee % > /dev/null |
关于%! sudo tee % > /dev/null
这条命令的说明如下
此命令是把当前文件(即%)作为stdin传给sudo tee命令来执行。
1 | % #VI/VIM编辑的文件内容 |
方法二
1 | :%!sudo bash -c "cat > '%'" |
更详细的解释可参考:http://feihu.me/blog/2014/vim-write-read-only-file/