有时候我们操作linux,编辑一些系统文件时是需要sudo操作
的,但是经常忘记使用`sudo `,直接就是vim 打开某个文件,当进行改动时出现以下情况,就要退出,重新用sudo vim 打开文件操作。
我们如何在不退出的情况下完成编写呢?
输入`:w ! sudo tee %`, 回车,出现下面提示,按`o` 再`回车`就可以了。
最后强制退出`:q!`
最后用cat 输入内容检查下,就会发现刚刚的内容已经写入了。
`:w ! sudo tee %`的意思是
:w! {cmd} 让vim 可以执行外部shell命令{cmd},且把当前缓冲区的内容从stdin传入。
tee 是一个把stdin保存到文件里的小工具
% 会vim 里的特殊字符,保存着当前文件的路径
整个意思就是把当前是文件缓冲区的内容(也就是你修改的内容)做为stdin传给tee让它写入到当前文件里。
最近编辑记录 kk (2020-09-01 19:45:01)
离线
很有用的知识点,谢谢分享
离线
还有这种骚操作,学到了,每次忘记嗯sudo进去vim文件,真是尴尬。
离线
试了一下,居然真的可以.
离线
感谢,有机会试一下。
离线
还真可以,奇怪的知识点+1。
离线