vim 里的 ignorecase 和 smartcase

时间秒杀一切 提交于 2019-12-03 13:43:55

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 高。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!