强制保存只读文件
问题
当使用 vim 时以普通用户身份打开一个只有 root 用户才能操作的文件时。编辑完成后但无法保存,很是苦恼。
解决方法
- 底行执行命令:
:w !sudo tee %
w: 表示保存文件
!: 表示执行外部命令
tee: linux 命令,这个有点复杂,可以查看 linux 命令帮助
%: 在执行外部命令时,%会扩展成当前文件名;这个%区别于替换时的%,替换时%的意义是代表整个文件,而不是文件名
优化
上述命令虽然解决了我们保存只读文件的需求,但是命令繁琐不好记,所以我们可以自己配置一下它的使用方法。
更改 .vimrc 文件,为它添加一条映射命令
shell
" 强制保存只读文件
cmap w!! w !sudo tee > /dev/null %
这样,简单的运行:w!!即可。命令后半部分> /dev/null 作用为显式的丢掉标准输出的内容。