您尚未登录。

楼主 #1 2020-09-01 19:42:50

kk
会员
注册时间: 2020-07-20
已发帖子: 10
积分: 10

【小技巧分享】在不退出vim的情况下使用sudo完成写入

问题

有时候我们操作linux,编辑一些系统文件时是需要sudo操作
的,但是经常忘记使用`sudo `,直接就是vim 打开某个文件,当进行改动时出现以下情况,就要退出,重新用sudo vim 打开文件操作。

20200830163831742.png

解决

我们如何在不退出的情况下完成编写呢?
输入`:w ! sudo tee %`, 回车,出现下面提示,按`o` 再`回车`就可以了。
20200830171122529.png

最后强制退出`:q!`
最后用cat 输入内容检查下,就会发现刚刚的内容已经写入了。

附加

`:w ! sudo tee %`的意思是
:w! {cmd}  让vim 可以执行外部shell命令{cmd},且把当前缓冲区的内容从stdin传入。
tee 是一个把stdin保存到文件里的小工具
% 会vim 里的特殊字符,保存着当前文件的路径
整个意思就是把当前是文件缓冲区的内容(也就是你修改的内容)做为stdin传给tee让它写入到当前文件里。

最近编辑记录 kk (2020-09-01 19:45:01)

离线

#2 2020-09-01 19:44:31

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 841
积分: 721

Re: 【小技巧分享】在不退出vim的情况下使用sudo完成写入

很有用的知识点,谢谢分享

离线

#3 2020-09-01 20:20:54

孤星泪
会员
注册时间: 2020-03-18
已发帖子: 235
积分: 231

Re: 【小技巧分享】在不退出vim的情况下使用sudo完成写入

还有这种骚操作,学到了,每次忘记嗯sudo进去vim文件,真是尴尬。

离线

#4 2020-09-03 21:36:20

pythinker
会员
注册时间: 2019-02-12
已发帖子: 215
积分: 215

Re: 【小技巧分享】在不退出vim的情况下使用sudo完成写入

试了一下,居然真的可以.

离线

#5 2020-09-04 09:22:58

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 【小技巧分享】在不退出vim的情况下使用sudo完成写入

感谢,有机会试一下。

离线

#6 2020-09-04 09:30:53

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

Re: 【小技巧分享】在不退出vim的情况下使用sudo完成写入

还真可以,奇怪的知识点+1。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn