Vim多行搜索模式

时间:2011-11-29 16:26:54

标签: vim substitution

我有一个替换命令,用于捕获并显示替换字符串中的submatch()值。但是我想在这一行下解析另一行信息。该行始终是空行后的第一行,但该行的行数TO变化。例如:

The first important line I want to capture is here
Stuff I don't want.
A few more lines of stuff I don't want...

Second line I want to capture.

此模式在文档中重复了大约一百次。我可以用“第一条重要线”来代替,但是搜索模式不应该包含跳到第一条空行然后拿起下一条“我要捕获的第二条线”的方法。 ??然后,我可以将第二行的内容放入子匹配括号中,并在需要的地方替换它们(对吗?)。

如果是这样,我无法找到扩展第一个搜索模式以捕获“第二行”的方法建议或纠正我的方法将不胜感激。

2 个答案:

答案 0 :(得分:4)

有人已dealt遇到类似问题。

  

/^\nF\d\_.\{-}\_^\n\zs.*/+

     

这意味着“查找以F和数字开头的行块,   然后向前扫描到下一个空白行并选择之后的行。“

有关详情,请点击链接。

答案 1 :(得分:0)

我想我读过有关抵消的信息,但我现在找不到相关帮助中的位。因此,我的另一个解决方案是录制一个宏来做你想做的事情:

qa/[Your pattern]<CR>jddq

然后,您可以使用@a执行此宏,并使用@@重复;或运行很多次(例如999@a)。