为了账号安全,请及时绑定邮箱和手机立即绑定

只对非空行做加双引号,怎么操作?

一个文件里会有随机的空行出现,只对非空行加双引号,怎么操作呢?

正在回答

1 回答

:% s/^\(\S+\)$/"\1"/g

2 回复 有任何疑惑可以回复我~
#1

WatsonBauer 提问者

看来不用宏也可以搞定嘛
2020-03-08 回复 有任何疑惑可以回复我~
#2

WatsonBauer 提问者

试了下,貌似不行哎~
2020-03-08 回复 有任何疑惑可以回复我~
#3

林寒涧肃 回复 WatsonBauer 提问者

:% s/^\(\s*\(\S\+\)\)\+\s*$/"\1"/g 这个考虑了某些行存在空格的情况,但是也排除了纯空格的行跟只有一个回车的行
2020-03-08 回复 有任何疑惑可以回复我~
#4

WatsonBauer 提问者

:% s/^\(\S+\)$/"\1"/g E486: Pattern not found: ^\(\S+\)$ 什么原因?
2020-03-09 回复 有任何疑惑可以回复我~
#5

WatsonBauer 提问者 回复 林寒涧肃

:% s/^\(\s*\(\S\+\)\)\+\s*$/"\1"/g 行里有空格的话,这种方法选不全整行
2020-03-09 回复 有任何疑惑可以回复我~
#6

林寒涧肃 回复 WatsonBauer 提问者

如果说要保留前后面空白的话,可以改成 :% s/^\(\(\s*\S\+\)\+\s*\)$/"\1"/g \1 表示取最外层的组(最外面的那一层括号)
2020-03-09 回复 有任何疑惑可以回复我~
#7

qq_8爷_0 回复 WatsonBauer 提问者

%s/\(\S.*\)$/"\1"/g
2023-12-11 回复 有任何疑惑可以回复我~
查看4条回复

举报

0/150
提交
取消
玩转Vim 从放弃到爱不释手
  • 参与学习       28422    人
  • 解答问题       78    个

作为程序员你还不知道编辑器之神 Vim 吗,带你从零开始学习 vim 编辑器。

进入课程

只对非空行做加双引号,怎么操作?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信