我經常做一些搜索(使用熱鍵,菜單命令或命令行)之後,我想保持第一搜索和添加其他搜索..VIM:結合兩個搜索
體育
- 首先我在我的文本中搜索雙倍空間。
- 然後我想保留匹配並添加搜索所有行尾空格
有沒有辦法將2個搜索結合起來?
1)搜索1
2)按F9或其他關鍵:ADD
3)搜索2
我經常做一些搜索(使用熱鍵,菜單命令或命令行)之後,我想保持第一搜索和添加其他搜索..VIM:結合兩個搜索
體育
- 首先我在我的文本中搜索雙倍空間。
- 然後我想保留匹配並添加搜索所有行尾空格
有沒有辦法將2個搜索結合起來?
1)搜索1
2)按F9或其他關鍵:ADD
3)搜索2
你可以這樣做:
exe '/\('.histget('/',-1).'\)\|\('.newSearch.'\)'
其中newSearch是您的新的搜索字符串。這樣做只是做搜索單獨的一個很好的方式,以確保你得到你想要的東西,然後用它們組合起來:
exe '/\('.histget('/',-1).'\)\|\('.histget('/',-2).'\)'
你可以這樣做重複建設相當長的搜索字符串,因爲它建立了一個新的在歷史中搜索字符串。
這只是或者是一起搜索,這與您所問的內容並不完全相同(因爲它不保留相同的匹配)。它只是連接搜索條件 - 但我懷疑這是你的意思。
你可以只按Esc鍵然後再\向上箭頭通過您的搜索捲回並編輯您以前的搜索,以包含額外項。因此,第一個向上箭頭將顯示您的最後一次搜索。
例
你想搜索的文本_pipe(
所以你鍵入: Esc鍵/_pipe(
現在,您要添加到搜索和決定以及_pipe(
這將是有用的只包括參數option
所以你輸入: Esc/向上箭頭
,然後編輯您以前的搜索閱讀/_pipe(.*option.*)
這就是現在使用的是從先前的搜索更新的新的搜索。
要處理先前的搜索,您還可以使用'q /'編輯以前輸入的搜索。在新打開的窗口中,您可以使用所有常用的Vim命令(插入,粘貼,更改等)。 – 2011-06-07 08:10:02
@Xavier偉大的提示,我不知道。 – 2011-06-07 08:21:39
在普通模式下,你可以使用一次搜索寄存器("/
)回想起自己最近的搜索模式:
/<C-r>/\|\(\[ ]\+$\)
其分解:
<C-r>
是CTRL + R,它會帶來一個"
,所以你可以選擇一個註冊,\|
添加另一種模式在您的搜索(OR
)\(\[ ]\+$\)
搜索和組尾隨空格。thak你。我知道這一個。但它不適用於搜索歷史-2 – Reman 2011-06-07 13:34:40
如果您逐漸添加搜索模式,則它按定義工作。如果你想回想起第二個搜索模式,那當然是行不通的。 – 2011-06-07 13:51:36
謝謝...但不容易使這項工作,因爲我想繼續在搜索歷史窗口中找到奇怪的東西。 – Reman 2011-06-07 13:33:24
每次將此代碼添加到我的搜索歷史記錄窗口中時:\ V \^\ zs \(\。\ { - } \)\ $'是VIM在搜索歷史記錄窗口中搜索時的「/」和箭頭嗎? –
Reman
2011-06-07 13:42:06
@Remonn:我認爲你必須有一個自動命令來進行搜索(或不太可能)替代。解釋正則表達式,它看起來像匹配以空格開頭的行。那響鈴嗎? – 2011-06-07 18:15:46