我想搜索大写单词,例如文件中的COPYRIGHT。 我尝试过执行搜索:
/copyright/i # Doesn't work
但它不起作用。 我知道在Perl中,如果我将i
标志放入正则表达式,它会将正则表达式转换为不区分大小写的正则表达式。 似乎Vim有自己的方式来表示不区分大小写的正则表达式。
#1楼
您需要使用\\c
转义序列。 所以:
/\\ccopyright
要进行反向(区分大小写的匹配),请使用\\C
代替。
#2楼
您可以在搜索之前在Vim中设置ic
选项:
:set ic
要返回区分大小写的搜索,请使用:
:set noic
ic
是ignorecase
简写
#3楼
您可以发出命令
:set ignorecase
之后,您的搜索将不区分大小写。
#4楼
除了对\\c
和ignorecase
的建议外,我发现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模式
- 正常模式(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搜索命令的文章 (内置命令和最有效的搜索插件)。