以下面文本为例
start
content
end
start
content
end
start
content
end
start
content
end
如何同时将所有位于 start 和 end 之间的行缩进?更通用地讲, vim 中如何根据正则表达式匹配批量执行某个特定操作?谢谢。
1
kotomi 2016-07-06 00:44:38 +08:00
try this command:
:g /^start/+1,/^end/-1 < general commands for block operation: :g /pattern operation :g /pattern1,/pattern2 operation |
2
wwulfric 2016-07-06 10:02:50 +08:00
:%s/\(start\)\s\n\s\+/\1\r/g
标准语法 :s/正则匹配 /正则替换 / %表示匹配全文, g 表示一行中有几个就匹配几个 特殊点: 1. vim 里很多正则的特殊符号需要转义,比如 ()+ 等 2. 匹配换行用 \n ,替代换行用 \r |
3
livelazily 2016-07-08 22:03:38 +08:00
|
5
NK OP @livelazily 这个插件赞
|