13

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?

15

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

  • 4
    I just do :noh which is enough for vim to know what I mean. :) – sml Aug 9 '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 9 '10 at 14:25
10

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

  • thats awful but a nice quick and dirty 'solution' though :) – matthias krull Aug 9 '10 at 13:59
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.

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.