13.1.6 /\(ab\)* 搜索"ab", "abab", "ababab",..和空串 "" 有空串的话意义不大。 /\(ab\)/+ 可以排除空串。"ab", "abab", "ababab",.. /ab\+ 匹配"", "abb", "abbb", etc /ab\{3,5} 匹配"abbb", "abbbb" and "abbbbb" 13.1.7 搜索匹配一般是贪婪匹配,vi中却有最小匹配,用的时候可以看看manual. 13.1.8 高级搜索 /foo\|bar 搜索"foo"或"bar" /\(foo\|bar\)\+ 搜索"foo", "foobar", "foofoo", "barfoobar", etc /end\(if\|while\|for\) 搜索 "endif", "endwhile" and "endfor"。 /forever\&... 搜索 "for" in "forever". 而不搜索 "fortuin", 搜索某个特定单词的某个部分。 [a-z],搜索a-z范围的字符,[]匹配一个字符。 /[0123456789abcdef] 等价于 /[0-9a-f] 如果还要搜索'-',则可以/[-0-9a-f]或/[0-9a-f-] 为了避免搜索特定字符,可以在开始使用^,在此情形下,匹配所有除了指定字符的所有其他字符。 /"[^"]*" 搜索 "foo" and "3!x", including the double . /"[^"]" 13.1.9 匹配换行: /the\nword 匹配以"the"结尾,并且下一行开始为"word"的情形。若要同时匹配"the word",可以使用: /the\_sword 若要可以匹配任意多个空格: /the\_s\+word 以上正则表达式同样匹配 "the " is at the end of a line and " word" at the start of the next one. 注意:"\s" 匹配 white space, "\_s" 匹配 white space or a line break. "\_" 很多其他的也可以在前面加上"\_" 以匹配一个换行。 例如:"\_." 匹配一个换行符或任意字符。 /"\_[^"]*" 匹配一段在双引号中的文字,该段文字可能分成若干行。 13.1.9 替换操作: First occurrence on current line: :s/OLD/NEW Globally (all) on current line: :s/OLD/NEW/g Between two lines #,#: :#,#s/OLD/NEW/g Every occurrence in file: :%s/OLD/NEW/g