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

/copyright/i    # Doesn't work

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


当前回答

您可以在vimrc中使用以下命令:

set ignorecase-所有搜索都不区分大小写set smartcase-如果搜索包含大写字母,则搜索将区分大小写

如果要使用smartcase提供的功能,则需要设置ignorecase。

我最近写了一篇关于Vim搜索命令(内置命令和高效搜索的最佳插件)的文章。

其他回答

好的老vim[grep]命令。。

:vimgrep /example\c/ &

\c表示不区分大小写\C表示区分大小写%是在当前缓冲区中搜索


正如@huyz所提到的,有时需要的行为是使用不区分大小写的搜索,但使用区分大小写替换。我的解决方案是:

nnoremap / /\c
nnoremap ? ?\c

当你打/或时总是这样?它将为不区分大小写的搜索添加\c。

默认情况下,vi中的所有搜索都区分大小写。要执行不区分大小写的搜索,请进入命令模式(按Esc键),然后键入-:设置忽略大小写您也可以键入-:将ic设置为缩写。

要切换回区分大小写模式,请键入-:set noignorecase或:set noic在命令模式下

为了在区分大小写和不区分大小写的搜索之间切换,我在.vimrc中使用了这个映射

nmap<F9>:设置忽略!无知?

将此命令放入vimrc文件

set ic 

始终执行不区分大小写的搜索