2011-11-29 115 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])。