在 Vim 中的另外两个字符之间插入一个字符

在 Vim 中的另外两个字符之间插入一个字符

如果我使用正则表达式在 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

相关内容