Untuk menjaga hal-hal minimal, tetapi masih berfungsi dengan baik untuk saya, saya punya ini, terinspirasi dari atas: sorot polos hingga 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>
Sekarang, nbahkan tanpa hlsearchmenunjukkan kepada saya di mana saya mendarat sampai saya memindahkan kursor. Ini SpellRaredigunakan untuk membuatnya lebih ovbious ketika hanya satu karakter yang cocok, kalau tidak itu mulusIncSearch