我想搜索一个大写单词,例如文件中的COPYRIGHT。我尝试执行搜索:
/copyright/i # Doesn't work
但它不起作用。我知道在Perl中,如果我将i
标志放入正则表达式,它会将正则表达式转换为不区分大小写的正则表达式。似乎Vim有自己的方式来表示不区分大小写的正则表达式。
答案 0 :(得分:1881)
您需要使用\c
转义序列。所以:
/\ccopyright
要执行反向(大小写敏感匹配),请改用\C
。
答案 1 :(得分:620)
除了\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'
答案 2 :(得分:259)
您可以在搜索之前在Vim中设置ic
选项:
:set ic
要返回区分大小写的搜索,请使用:
:set noic
ic
是ignorecase
答案 3 :(得分:51)
您可以发出命令
:set ignorecase
之后,您的搜索将不区分大小写。
答案 4 :(得分:43)
要在区分大小写和不区分大小写的搜索之间切换,请在我的.vimrc
中使用此映射 nmap <F9> :set ignorecase! ignorecase?
答案 5 :(得分:17)
将此命令放入vimrc文件
set ic
始终执行不区分大小写的搜索
答案 6 :(得分:17)
正如其他人所说:
:set ic
但很酷的是你可以用以下方式切换这些模式:
:set ic!
答案 7 :(得分:15)
您可以在vimrc
这些命令中使用:
set ignorecase
- 您的所有搜索都不区分大小写set smartcase
- 如果搜索包含大写字母如果您想使用ignorecase
提供的内容,则需要设置smartcase
。
我最近写了an article about Vim search commands(内置命令和最有效的搜索插件)。
答案 8 :(得分:13)
答案 9 :(得分:9)
我更喜欢在搜索字符串的末尾使用@echo off
setlocal enabledelayedexpansion
set /p ans= New files or saved file n or a :
if [%ans%] == [n] (
set /p mkfl= Files you want to save in [filename].[bat;cmd;txt] :
set /p val= Enter Key to Save:
echo %val% > !mkfl!
SET /p t= y:
) else if [%ans%] == [a] (
set /p flnm= Type in the filename:
set /p val= Type in words:
set /p ans= Enter [s,o] to re-save or overwrite:
if [%ans%] == [s] (
ECHO append
) else if [%ans%] equ [o] (
ECHO overwrite
) else (
ECHO problem
)
SET /p z= f:
) else (
ECHO problem occurred during executing
SET /p a= p:
)
set /p fk= .
:
\c
答案 10 :(得分:7)
正如@huyz所提到的,有时候期望的行为是使用不区分大小写的搜索,但是区分大小写的替换。我的解决方案:
nnoremap / /\c
nnoremap ? ?\c
当您点击/
或?
时,它会添加\c
以进行不区分大小写的搜索。
答案 11 :(得分:2)
Vim有两种模式
1.edit mode
搜索将适用于普通模式
区分大小写的/ \ c
<强> / \ C的搜索 强>
答案 12 :(得分:2)
您可以默认设置ignorecase
,在shell中运行
echo "set ic" >> ~/.vimrc
答案 13 :(得分:0)
一些重要信息,如果您想了解有关vim命令的更多信息,如下所述,您可以尝试以下步骤:
:help ignorecase
:q
我真的希望所提供的信息对某人有所帮助。
最诚挚的问候,
答案 14 :(得分:0)
默认情况下,vi中的所有搜索均区分大小写。要进行不区分大小写的搜索,请进入命令模式(按Escape键),然后键入-
:set ignorecase
您也可以输入-
:set ic
的缩写。
要更改为区分大小写模式,请键入-
:set noignorecase
或:set noic
在命令模式下