我希望在文件中搜索大写单词,例如 COPYRIGHT。我尝试执行以下搜索:
/copyright/i # Doesn't work
但它没有生效。我知道在Perl中,如果我在正则表达式中加入i标志,它会将正则表达式转换为不区分大小写的正则表达式。似乎Vim有自己的一种方式来表示不区分大小写的正则表达式。
我希望在文件中搜索大写单词,例如 COPYRIGHT。我尝试执行以下搜索:
/copyright/i # Doesn't work
但它没有生效。我知道在Perl中,如果我在正则表达式中加入i标志,它会将正则表达式转换为不区分大小写的正则表达式。似乎Vim有自己的一种方式来表示不区分大小写的正则表达式。
\c
转义序列。例如:
/\ccopyright
或/copyright\c
甚至/copyri\cght
\C
)。除了使用\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'
smartcase
生效,您还需要使用 set ignorecase
。非常好的提示,谢谢! - Skilldrick\C
进行替换,像这样: :%s/lowercasesearch\C/replaceString/g
。虽然这并不会创建你想要的默认功能,但它允许你在替换时强制区分大小写,同时仍然可以从智能大小写搜索中受益。 - Anthony DiSanti在搜索前,您可以在 Vim 中设置 ic
选项:
:set ic
要重新使用区分大小写的搜索,请使用:
:set noic
ic
是 ignorecase
的缩写
\c
在 Vi 中是无效的。 - bluppfisk您可以发出该命令
:set ignorecase
之后您的搜索将不区分大小写。
你可以在你的vimrc
文件中使用以下命令:
set ignorecase
- 所有搜索都将不区分大小写。set smartcase
- 如果搜索项包含大写字母,则大小写敏感。如果你想使用smartcase
提供的功能,你需要设置ignorecase
。
我最近写了一篇关于Vim搜索命令(内置命令和最佳插件)的文章。
set smartcase
就不能执行大小写不敏感的搜索...这正常吗? - caneta为了在大小写敏感和不敏感的搜索之间切换,我在我的 .vimrc 文件中使用以下映射:
nmap <F9> :set ignorecase! ignorecase?
ignorecase?
会显示标志当前的状态。(在命令行中) - Boris Brodskiignorecase?
这样你就知道当前状态了。 - COil<Cr>
,这样命令就会被验证,而且你不必按回车键(至少在neovim中是这样)。 - COil默认情况下,vi中的所有搜索都是区分大小写的。要进行不区分大小写的搜索,请进入命令模式(按Escape键),然后输入-
:set ignorecase
您也可以输入- :set ic
作为缩写。
要切换回区分大小写模式,请在命令模式下输入-
:set noignorecase
或 :set noic
:set ic!
会切换。 - robmsmt正如其他人建议的:
:set ic
不过,有趣的是你可以使用以下方式切换这些模式:
:set ic!
我更喜欢在搜索字符串的末尾使用\c
:
/copyright\c
\c
可以出现在模式的任何位置,因此如果您输入了一个模式,然后决定要进行不区分大小写的搜索,只需在末尾添加\c
即可。 - Alok Singhal\C
进行类似于@AlokSinghal所提到的区分大小写的搜索。 - Nick McCurdyset smartcase
,如果你输入大写字母,它将自动切换到区分大小写的搜索模式。 - Zazset ignorecase
已经激活时,set smartcase
才会起作用。我曾经被这个问题困扰了一段时间。请参见Vim技巧。 - Tan Wang\c
和\C
是有区别的。 - Aaron McDaid