2011-11-29 101 views
1

我有一个替代命令,它捕获并显示替换字符串中的submatch()值。但是我想在这条线下面解析另一条信息。该行始终是空行后面的第一行,但空行的行数不同。例如:Vim多行搜索模式

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. 

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

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

回答

4

有人已经有dealt有类似的问题。

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

这意味着“查找与F和一个数字, 开始行的块,然后扫描着下一个空行,之后选择行。”

欲了解更多详情,请点击链接。

+0

完美。谢谢,Gebb。 – Ricalsin

0

我想我已经阅读了偏移量,但是我现在无法在相关帮助中找到相关位。因此,我的其他的解决办法是录制宏做你想要什么:

qa/[Your pattern]<CR>jddq 

你可以接着用@a执行这个宏与@@重复;或者运行很多次(例如,[email protected])。