在Linux环境下,如果直接使用VI/VIM命令编辑没有修改权限的文件时,保存的时候就会提示用户无法进行保存操作,一般的解决方法只能是关闭文件重新以sudo权限打开该文件编辑后再保存(前提是用户具有sudo权限)。其实,在VI/VIM模式下通过一些简单的命令,就能在不关闭当前文件的情况下达到保存文件的目的(感谢晓哲老师提供的方法):
输入命令:%! sudo tee % > /dev/null
按提示输入sudo权限密码
输入“L”(Load File)
输入:q命令退出
关于“%! sudo tee % > /dev/null”这条命令的说明如下:
% #VI/VIM编辑的文件内容
! #管道
sudo #以root权限操作
tee #将标准输入(即通过管道过来的当前编辑的文件内容)输出到标准输出,同时写入到指定的文件中(即VI/VIM当前编辑的文件)
% #VI/VIM编辑的文件
> /dev/null #将标准输出重定向到/dev/null(不输出显示)