2008-09-25 103 views
7

有沒有辦法在Vim中同時搜索多個字符串?我記得在某個地方讀到這是可能的,但不知何故忘記了這種技術。例如,我有一個文本文件,我想同時搜索「foo」和「bar」(不一定是單個字符串,可以在不同的行中)。在Vim中高級搜索

我該如何做到這一點?

回答

15
/^joe.*fred.*bill/   : find joe AND fred AND Bill (Joe at start of line) 
/fred\|joe     : Search for FRED OR JOE 
+0

這也適用。而且比我在下面給出的解釋性答案簡單得多 – 2008-09-25 05:20:14

+0

如果我以前發現這個......( – ojblass 2009-03-26 02:15:07

-3
/(foo|bar) 
+1

你需要逃出酒吧和括號:/ \\(FOO \ |酒吧\\) 但無論如何,在這種情況下,不需要將它們分組!/foo \ | – wilhelmtell 2008-09-25 05:17:03

0

Vim通過在命令模式下以'/'開始來支持正則表達式。

因此,使用「/(foo \ | bar)」(如前所述)可以解決問題。很高興知道它的工作原理和使用方法(正則表達式)。

2

其實我很快就找到了答案我張貼在此之後(是的,我做了谷歌早期的,但無法找到它。也許只是搜索錯誤)

正確的解決辦法是

/( FOO \ |條)

@保羅·貝茨:管道已被缺省的轉義