- 使用
ignorecase
选项,强制忽略大小写;可以通过:set noignorecase
来取消强制忽略大小写 \c
- 同ignorecase
,强制忽略\C
- 强制开启大小写匹配smartcase
选项,如果匹配模式中全为小写,则忽略大小写;但是如果匹配模式中有任意一个大写字母,则会强制开启大小写匹配
在不对单词进行边界界定时,在查找时 Vim 会命中所有包含要查找字符的单词。例如,there
their
they
都包含 the
,所以如果不进行单词边界界定的话,在查找时会命中前面全部三个单词。在 very mode 模式中,可以使用 <>
进行单词界定,用来标示匹配的开始和结束位置。
*
- 正向查找,会界定单词边界,即严格匹配,不会进行贪婪匹配#
- 同*
,只不过为反向查找g*
- 同*
,只不过不会界定单词边界,会进行贪婪匹配g#
- 同#
,不会界定单词边界,会进行贪婪匹配
在 Vim 中,默认开启的正则匹配模式是 magic 模式,其本意是简化正则匹配规则,但是在实现的道路上跑偏了,最终半途而废,导致只有一部分符号有特殊含义,另外的符号没有特殊含义;且没有什么规则,导致不好记忆,最终的结果就是一点都不 magic。在 magic 模式中,.*[]
等有特殊含义,而 ?+(){}
等没有特殊含义,要想像其他的正则一样使用这些特殊符号,则需要使用 \\
进行转义,导致使用起来非常不方便。所以这里推荐使用 very magic 模式。
在 very magic 模式中,把字母、数字和下划线 _
之外的所有字符都当作特殊字符来对待,且赋予这些特殊字符特殊的匹配规则或者含义。这样就非常方便记忆:只需要记住没有特殊意义的字符,其他都是特殊字符。
在匹配模式中,通过是用 \v
来开启 very magic 模式:
/\v[0-9]{3}
上面的匹配模式中,通过 \v
开启 very magic 模式,[0-9]
标示允许的字符范围,{3}
标示匹配三个数字。
very magic 模式使得使用正则表达式匹配变得非常容易,不需要使用很多转义字符 \\
来对默认的非特殊字符进行转义来使用其特殊含义。
在使用中可以通过 \v
开启 very magic 模式使得正则匹配变得非常容易,但是有时候我们会有另外的需求:使用原义匹配,关闭字符的特殊含义,只使用字符的原义,例如:
/https://example.com?query=//
如果我们要对上面的 url 进行匹配的话,为了匹配完整的 url,把特殊字符去掉,我们需要像下面这样写:
/https:\/\/example.com\?query=\/\/
会多出来很多转义符,这时就可以考虑使用原义模式:
/\Vhttps://example.com?query=//
在匹配模式中使用 \V
时,除了转义符 \\
之外,其他符号都没有特殊含义,只安其字面进行匹配。
在日常的使用中,推荐使用 very magic 模式和原义模式,这两种模式可以覆盖绝大部分的使用需求。基本上 magic 模式提供的功能,very magic 都可以满足,且实现的更好。
- Github
- Email: web.taox@gmail.com