结合所有项目的vim正则表达式

时间:2017-01-15 19:27:41

标签: regex vim

我有以下格式的文件

1 2472
1 664
2 2600
10 4135
10 5606
...

我希望将其转换为

1 2472 664
2 2600
10 4135 5606
...

2 个答案:

答案 0 :(得分:5)

您可以通过执行以下命令来组合项目:

:%s/\v(\d+\s)(.*\n\1.*)+/\=substitute(submatch(0),'\n'.submatch(1),' ','g')/

答案 1 :(得分:0)

通过多线支持,您可以使用:

struct

regex101上查看。

我们的想法是使用反向引用来匹配两行。

在vim的语法中,您可以按如下方式编写:

class