« Home

edit

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

Comments

comments powered by Disqus