Hai*_*ang 1579 vim search case-insensitive
我想搜索一个大写单词,例如文件中的COPYRIGHT.我尝试过执行搜索:
/copyright/i # Doesn't work
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我知道在Perl中,如果我将i
标志放入正则表达式,它会将正则表达式转换为不区分大小写的正则表达式.似乎Vim有自己的方式来表示不区分大小写的正则表达式.
Chi*_*chi 2010
您需要使用\c
转义序列.所以:
/\ccopyright
要进行反向(区分大小写的匹配),请\C
改为使用.
DrA*_*rAl 651
以及对\c
和的建议ignorecase
,我觉得smartcase
非常有用.如果您搜索包含大写字符的内容,它将执行区分大小写的搜索; 如果你搜索纯粹小写的东西,它会做一个不区分大小写的搜索.您可以使用\c
和\C
覆盖此:
:set ignorecase
:set smartcase
/copyright " Case insensitive
/Copyright " Case sensitive
/copyright\C " Case sensitive
/Copyright\c " Case insensitive
Run Code Online (Sandbox Code Playgroud)
看到:
:help /\c
:help /\C
:help 'smartcase'
Run Code Online (Sandbox Code Playgroud)
Nat*_*man 274
您可以ic
在搜索之前在Vim中设置选项:
:set ic
Run Code Online (Sandbox Code Playgroud)
要返回区分大小写的搜索,请使用:
:set noic
Run Code Online (Sandbox Code Playgroud)
ic
是简写 ignorecase
vbd*_*vbd 45
要在区分大小写和不区分大小写的搜索之间切换,我在.vimrc中使用此映射
nmap <F9> :set ignorecase! ignorecase?
Mat*_*ieu 23
您可以在vimrc
这些命令中使用:
set ignorecase
- 您的所有搜索都不区分大小写set smartcase
- 如果包含大写字母,则搜索将区分大小写您需要设置ignorecase
是否要使用smartcase
提供的内容.
我最近写了一篇关于Vim搜索命令的文章(内置命令和最有效的搜索插件).
fan*_*e89 20
正如其他人所说:
:set ic
Run Code Online (Sandbox Code Playgroud)
但很酷的东西是你可以切换这样的模式:
:set ic!
Run Code Online (Sandbox Code Playgroud)
WAL*_*MIA 18
将此命令放在vimrc文件中
set ic
Run Code Online (Sandbox Code Playgroud)
总是做不区分大小写的搜索
Mic*_*ick 15
vim[grep]
命令..:vimgrep /example\c/ &
Run Code Online (Sandbox Code Playgroud)
正如@huyz所提到的,有时期望的行为是使用不区分大小写的搜索,但是区分大小写的替换.我的解决方案:
nnoremap / /\c
nnoremap ? ?\c
Run Code Online (Sandbox Code Playgroud)
总是当你点击它/
或?
它将添加\c
不区分大小写的搜索.
默认情况下,vi 中的所有搜索都区分大小写。要进行不区分大小写的搜索,请进入命令模式(按 Escape),然后
:set ignorecase
键入 - 您也可以键入 -
:set ic
作为缩写。
要更改回区分大小写的模式,请 键入-
:set noignorecase
或:set noic
在命令模式下