After a search I've done, all the matches for the respective query remain highlighted and it's annoying. This happens even after I close the respective file (normal behavior?). How to I remove this?
You want the command
:nohlsearch, but you don't want to type that every time. Put this in your ~/.vimrc:
nnoremap <silent> <leader>n :nohlsearch<CR>
After that, you just enter your leader (which by default is
\) and then
n to clear the matches. You don't need to use
n; if you prefer, pick something else.
You can also remap your leader to something more comfortable, if you like. I use a comma:
let mapleader = ","
(That goes before the mapping to clear searches.)
4I just do :noh which is enough for vim to know what I mean. :)– smlAug 9, 2010 at 14:16
@scottl Fair enough (and good reminder that all commands have shortcuts), but I still like to map frequently used commands. Aug 9, 2010 at 14:25
/qiw772723euz to "search" for something thats not in the file. hacky workaround, i know, i am interested in a real solution as well :)
Similar to @Telemachus answer above, a comment on this answer over at SO by @David Winslow suggested mapping a toggle of
hlsearch. You would map the following:
nmap <silent> <leader>n :set hlsearch!<CR>
Hitting n would then toggle highlight search off and on every time you hit it.
In my config, I clear highlighted search terms by just hitting enter in command mode. This is how that's configured.
set hlsearch " highlight all matched terms " Pressing return clears highlighted search :nnoremap <CR> :nohlsearch<CR>/<BS>
As a side note, I like to make sure that my search matches are highlighted super clearly, no matter the color scheme, so I give them black text on a yellow background.
" When highlighting search terms, make sure text is contrasting color :highlight Search ctermbg=yellow ctermfg=black " Do the same for gvim :highlight Search guibg=yellow guifg=black
I have a slightly different solution. To me it feels as the natural thing to do would be to press
<esc> to make it go away. However, that doesn't work. Mapping
:noh has nasty side-effects, so that's not an option either.
<Leader>n and similar mappings feels unintuitive for me for such a trivial task. However, pressing
<esc> twice is something I can live with:
nnoremap <silent> <esc><esc> :nohlsearch<CR>