Para mantener las cosas mínimas, pero aún funciona perfectamente para mí, tengo esto, inspirado desde arriba: resaltado simple hasta CursorMoved
:
function! HLNext()
let l:higroup = matchend(getline('.'), '\c'.@/, col('.')-1) == col('.')
\ ? 'SpellRare' : 'IncSearch'
let b:cur_match = matchadd(l:higroup, '\c\%#'.@/, 101)
redraw
augroup HLNext
autocmd CursorMoved <buffer>
\ execute 'silent! call matchdelete('.b:cur_match.')'
\ | redraw
\ | autocmd! HLNext
augroup END
endfunction
nnoremap <silent> * *:call HLNext()<CR>
nnoremap <silent> # #:call HLNext()<CR>
nnoremap <silent> n n:call HLNext()<cr>
nnoremap <silent> N N:call HLNext()<cr>
Ahora, n
incluso sin hlsearch
, me muestra el lugar donde aterricé hasta que muevo el cursor. Se SpellRare
usa para hacer que sea más desagradable cuando solo un personaje coincide, de lo contrario es el suaveIncSearch