在不退出vim的情况下使用sudo完成写入

问题

有时候我们操作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让它写入到当前文件里。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值