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

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

/copyright/i    # Doesn't work

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


#1楼

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

/\\ccopyright

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


#2楼

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

:set ic

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

:set noic

icignorecase简写


#3楼

您可以发出命令

:set ignorecase

之后,您的搜索将不区分大小写。


#4楼

除了对\\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'

#5楼

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

nmap <F9> :set ignorecase! ignorecase?


#6楼

将此命令放在vimrc文件中

set ic 

总是做不区分大小写的搜索


#7楼

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

nnoremap / /\c
nnoremap ? ?\c

总是当你击中/? 它将添加\\c用于不区分大小写的搜索。


#8楼

正如其他人所说:

:set ic

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

:set ic!

#9楼

Vim有2种模式

1.edit模式

  1. 正常模式(Esc)

搜索将适用于正常模式

/ \\ c表示区分大小写

/ \\ c 搜索


#10楼

我更喜欢在搜索字符串的末尾使用\\c

/copyright\c

#11楼

您可以默认设置ignorecase ,在shell中运行

echo "set ic" >> ~/.vimrc

#12楼

好老的vim[grep]命令..

:vimgrep /example\c/ &
  • \\ c表示不区分大小写
  • \\ C表示区分大小写
  • 是在当前缓冲区中搜索

在此输入图像描述


#13楼

您可以在vimrc使用这些命令:

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

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

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

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值