I'd like to search for an upper case word, for example COPYRIGHT in a file. I tried performing a search like:
/copyright/i # Doesn't work
but it doesn't work. I know that in Perl, if I give the i
flag into a regex it will turn the regex into a case-insensitive regex. It seems that Vim has its own way to indicate a case-insensitive regex.
You need to use the \c
escape sequence. So:
/\ccopyright
To do the inverse (case sensitive matching), use \C
instead.
As well as the suggestions for \c
and ignorecase
, I find the smartcase
very useful. If you search for something containing uppercase characters, it will do a case sensitive search; if you search for something purely lowercase, it will do a case insensitive search. You can use \c
and \C
to override this:
:set ignorecase
:set smartcase
/copyright " Case insensitive
/Copyright " Case sensitive
/copyright\C " Case sensitive
/Copyright\c " Case insensitive
See:
:help /\c
:help /\C
:help 'smartcase'
You can set the ic
option in Vim before the search:
:set ic
To go back to case-sensitive searches use:
:set noic
ic
is shorthand for ignorecase
You can issue the command
:set ignorecase
and after that your searches will be case-insensitive.
To switch between case sensitive and insensitive search I use this mapping in my .vimrc
nmap <F9> :set ignorecase! ignorecase?
As others suggested:
:set ic
But the cool stuff is You can toggle such modes with:
:set ic!
You can use in your vimrc
those commands:
set ignorecase
- All your searches will be case insensitiveset smartcase
- Your search will be case sensitive if it contains an uppercase letter
You need to set ignorecase
if you want to use what smartcase
provides.
I wrote recently an article about Vim search commands (both built in command and the best plugins to search efficiently).
put this command in your vimrc file
set ic
always do case insensitive search
I prefer to use \c
at the end of the search string:
/copyright\c
As @huyz mention sometimes desired behavior is using case-insensitive searches but case-sensitive substitutions. My solution for that:
nnoremap / /\c
nnoremap ? ?\c
With that always when you hit /
or ?
it will add \c
for case-insensitive search.
Vim have 2 modes
1.edit mode
- normal mode( Esc )
Search will work for normal mode
/\c for case sensitive
/\csearch
You can set ignorecase
by default, run this in shell
echo "set ic" >> ~/.vimrc
来源:https://stackoverflow.com/questions/2287440/how-to-do-case-insensitive-search-in-vim