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

/copyright/i    # Doesn't work

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


当前回答

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

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

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

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

其他回答

将此命令放入vimrc文件

set ic 

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

请注意,在表达式中放置“\c”等修饰符是有区别的:

您可以在模式中的任何位置使用\c转义序列

不管接受的答案是什么,即在正则表达式模式中放置modyfer的位置没有区别,它看起来确实很重要。

示例文本:

asdasdasdasdasd wiktor asdasdasdasd   
adasdasdasd wiktor asdasda ahjkjlkhjkl
asdasd asd asdasdasdasd iuuuu -       
asdjkkkkkkkaopbsdasda                 
wiktor ----(---------------------)--  

火柴

\c ^.*A*$^\c.*A*$^.*\cA*$^.*A\c*$

将输出:

没有匹配项

^.\c*A*$^.*A?\c、*$^.*A?。\c类*$^.*A*$\c类

将输出:

vim-版本vim-Vi IMproven 8.2(2019年12月12日,2020年6月1日06:42:35)包括的补丁:1-869

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

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

一些重要信息,如果你想了解更多关于vim命令的信息,如下所述,你可以尝试以下步骤:

调用命令“help”,后跟空格,然后用TAB键完成单词,一旦找到正确的命令,请按回车键。

:help ignorecase

将显示如下信息:

您将能够向前和向后移动,还可以查看短命令,例如“ignorecase”(“ic”)。此外,另一个简短的例子可能是“smartcase”(“cs”等):

为了离开文档,只需像往常一样键入“:q”,您将返回到“命令模式”。

:q

我真的希望所提供的信息对某人有帮助。

顺致敬意,

正如其他人所建议的:

:set ic

但最酷的是,您可以通过以下方式切换这些模式:

:set ic!