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

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

/copyright/i # Doesn't work 

但它不起作用。 我知道,在Perl中,如果我把i标志变成正则expression式,它会把正则expression式转换成不区分大小写的正则expression式。 Vim似乎有自己的方式来表示一个不区分大小写的正则expression式。

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

/\ccopyright

要进行反转(区分大小写的匹配),请改用\C

除了\cignorecase的build议,我觉得smartcase非常有用。 如果您search包含大写字母的内容,则会执行区分大小写的search; 如果您search的是纯粹小写的内容,则会执行不区分大小写的search。 您可以使用\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' 

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

 :set ic 

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

 :set noic 

icignorecase简写

你可以发出这个命令

 :set ignorecase 

之后你的search将不区分大小写。

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

nmap <F9> :set ignorecase! ignorecase?

把这个命令放在你的vimrc文件中

 set ic 

总是做不区分大小写的search

正如其他人所说:

 :set ic 

但很酷的东西你可以切换这样的模式:

 :set ic! 

正如@huyz提到的,有时期望的行为是使用不区分大小写的search,但区分大小写的replace。 我的解决scheme是:

 nnoremap / /\c nnoremap ? ?\c 

总是当你打/? 它会为不区分大小写的search添加\c

我更喜欢在searchstring的末尾使用\c

 /copyright\c 

Vim有2种模式

1.编辑模式

  1. 正常模式(Esc)

search将适用于正常模式

/ \ c区分大小写

/ \ c search

你可以设置ignorecase默认情况下,在shell中运行

 echo "set ic" >> ~/.vimrc