在下一个关于Vim的搜索中,我想忽略首字母的大小写:

/[tlcp]omo

我想知道如何仅对搜索模式的第一个字母忽略大小写。

Vim具有以下选项可忽略搜索模式中的大小写:
:set ignore
:set smartcase [ignore case if no uppercase in search]

或在搜索模式中的任何位置使用\c:
/hello\c => [find hello and HELLO]

但是所有这些选项在整个模式中都忽略了大小写,而不是部分忽略。

一种忽略搜索模式中单个字母的情况的选项是,使用正则表达式的[]集合专门将每个字母大写:
/[tTlLcCpP]omo

但是,有什么方法可以忽略搜索模式的一部分中的大小写,而不必使用正则表达式指定每个大小写字符?

最佳答案

通常,在Vim中是不可能的。不幸的是, /\c /\C 正则表达式修饰符将整个模式转换为区分大小写(不区分大小写)的匹配项,而不管它们放在何处。 (在我看来,引入一组仅从该位置开始起作用的修饰符是最好的解决方案。)

大多数人通常通过对不敏感的部分/like [tT][hH][iI][sS]/使用小写/大写集合来解决此问题。

您也可以采用相反的方法,而是将某些字符强制大小写(使用 /\l 表示小写,使用 /\u 表示大写),/\c\%(\l\l\l\l\&like\) this/

关于regex - 在Vim的搜索模式中忽略大小写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60194038/

10-13 09:21