- 使用
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