Это то, что я использую (извлечено из множества разных вопросов / ответов):
nnoremap <silent> <Esc><Esc> :let @/=""<CR>
С помощью «double» Esc вы удаляете выделение, но как только вы начинаете поиск снова, выделение снова появляется.
Другая альтернатива:
nnoremap <silent> <Esc><Esc> :noh<CR> :call clearmatches()<CR>
Согласно документации vim:
clearmatches ()
Clears all matches previously defined by |matchadd()| and the
|:match| commands.