15

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?

studiohack
  • 13,468
  • 19
  • 88
  • 118
Alex
  • 1,813
  • 5
  • 20
  • 27

5 Answers5

16

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.)

Telemachus
  • 6,845
  • 1
  • 27
  • 33
  • 4
    I 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
11

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 :)

akira
  • 61,009
  • 17
  • 135
  • 165
4

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.

technomalogical
  • 723
  • 2
  • 7
  • 13
3

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
Nathan Long
  • 26,015
  • 36
  • 102
  • 139
0

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>

sigvaldm
  • 111
  • 5