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
