如果我使用正则表达式在 vim 中搜索模式,然后想要插入一些内容而不更改正则表达式匹配的内容,我该怎么办?例如,在一个文件中
foo123
bar4567
12zw231xy
我想在每个非数字之间插入换行符,后跟数字,从而产生如下文件:
foo
123
bar
4567
12zw
231xy
答案1
:%s/\(\D\)\(\d\)/\1\r\2/g
\(\)
是捕获组。其中捕获的内容由\1
和再现\2
。\D
是非数字,\d
是数字。\r
成为 Vim 中的换行符。
这可以简化为魔法模式正则表达式,启用\v
:
:%s/\v(\D)(\d)/\1\r\2/g