Vim中的搜索
要在Vim中搜索,首先切换到普通模式。
如果要向前搜索,按/
,然后紧跟你的搜索模式(Search Pattern)。或者按?开始向后搜索。
在写搜索模式中,你可以直接写要搜索的东西,比如输入/
foo来匹配foo,你也可以使用更高级的正则表达式。但是在使用正则表达式时,有些地方需要注意。
Vim搜索中的正则表达式和Python,PHP的不一样,在Python中,(, {, |
这些符号都有特别的功能,但是在Vim中,这些都可以用来匹配的,如果想要让(, )
用来捕获匹配,或者让{, }
用来重复,必须用(backslash)
来让这些符号有特殊功能。因此,匹配afoo
并捕获foo
,可以用/a\(foo\)
。有一点要注意,(,)
必须前后都加\
,但是{}
可以只在前面的{
中加\
,后面的vim会智能的识别。
这样写正则表达式的却有些麻烦,而Vim允许我们使用类似Python的模式。除了用backslash让那些符号有特殊功能外,我们还可以用v模式来达到相同的目的。比如上面的例子,/va(foo)
就可以了。同样,如果我们想方便的匹配a.b.c
,而不用escape里面的标点符号,可以用V模式。
注意:
., *, , [, ], ^, $
这些都是元字符
+, ?, |, {, }, (, )
必须用backslash也就是前置才能使它们有特殊功能。
EOF