协慌网

登录 贡献 社区

如何在 Vim 中进行不区分大小写的搜索

我想搜索一个大写单词,例如文件中的 COPYRIGHT。我尝试过执行搜索:

/copyright/i    # Doesn't work

但它不起作用。我知道在 Perl 中,如果我将i标志放入正则表达式,它会将正则表达式转换为不区分大小写的正则表达式。似乎 Vim 有自己的方式来表示不区分大小写的正则表达式。

答案

您需要使用\c转义序列。所以:

/\ccopyright

要进行反向(区分大小写的匹配),请使用\C代替。

除了对\cignorecase的建议外,我发现smartcase非常有用。如果您搜索包含大写字符的内容,它将执行区分大小写的搜索; 如果你搜索纯粹小写的东西,它会做一个不区分大小写的搜索。您可以使用\c\C来覆盖它:

:set ignorecase
:set smartcase
/copyright      " Case insensitive
/Copyright      " Case sensitive
/copyright\C    " Case sensitive
/Copyright\c    " Case insensitive

看到:

:help /\c
:help /\C
:help 'smartcase'

您可以在搜索之前在 Vim 中设置ic选项:

:set ic

要返回区分大小写的搜索,请使用:

:set noic

icignorecase简写