vim 里的 ignorecase 和 smartcase

ignorecasesmartcase 是 vim 里的选项(options),经常用在字符串搜索中,目的是改变搜索模式的大小写敏感性。它们设置的是vim 的全局设置,对 vim 里发生的所有搜索都生效。与它们有相同作用的还有 \c\C, 这两个设置每次查找时的大小写敏感性。详细的文档可以通过在 vim 里执行 :help 'ignorecase':help 'smartcase':help \c 查看。

下面是文档里的一个示例:

pattern 'ignorecase' 'smartcase' matches
foo off - foo
foo on - foo Foo FOO
Foo on off foo Foo FOO
Foo on on Foo
\cfoo - - foo Foo FOO
foo\C - - fooin

默认情况下,vim 会严格区分搜索模式的大小写,使用 ignorecase 选项,正则表达式引擎忽略搜索模式的大小写。而 smartcase 选项顾名思义,就是智能的判断要不要区分搜索模式大小写。那它到底智能在哪里?它只能在 ignorecase 开启的时候使用,目的是在忽略大小写的大局下,根据搜索模式,动态地抑制 ignorecase 的功能,使大小写策略恢复到默认的区分大小写的搜索。

在忽略大小写的搜索下,搜索模式使用大写还是小写已经无关紧要,而输入全小写 的搜索模式更加简单。在这种情况下,如果搜索模式中出现了大写字符,smartcase 会判断用户想使用区分大小写的搜索。

\c\C 用在某一条具体的搜索中,根据就近原则,越靠近操作对象,越具体的配置优先级越高,所以\c\C 的优先级比 ignorecasesmartcase 高。

posted @ 2019-11-05 12:13  一零玉  阅读(3406)  评论(0)    收藏  举报