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?
5 Answers
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.)
- 6,845
- 1
- 27
- 33
-
4I just do :noh which is enough for vim to know what I mean. :) – sml Aug 09 '10 at 14:16
-
@scottl Fair enough (and good reminder that all commands have shortcuts), but I still like to map frequently used commands. – Telemachus Aug 09 '10 at 14:25
i just /qiw772723euz to "search" for something thats not in the file. hacky workaround, i know, i am interested in a real solution as well :)
- 61,009
- 17
- 135
- 165
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.
- 723
- 2
- 7
- 13
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
- 26,015
- 36
- 102
- 139
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 <esc> to :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>
- 111
- 5