如何在Vim中进行不区分大小写的search
我想search一个大写的单词,例如文件中的COPYRIGHT。 我尝试执行search,如:
/copyright/i # Doesn't work
但它不起作用。 我知道,在Perl中,如果我把i
标志变成正则expression式,它会把正则expression式转换成不区分大小写的正则expression式。 Vim似乎有自己的方式来表示一个不区分大小写的正则expression式。
您需要使用\c
转义序列。 所以:
/\ccopyright
要进行反转(区分大小写的匹配),请改用\C
除了\c
和ignorecase
的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
ic
是ignorecase
简写
你可以发出这个命令
: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.编辑模式
- 正常模式(Esc)
search将适用于正常模式
/ \ c区分大小写
/ \ c search
你可以设置ignorecase
默认情况下,在shell中运行
echo "set ic" >> ~/.vimrc