Để giữ mọi thứ tối thiểu, nhưng vẫn hoạt động hoàn hảo đối với tôi, tôi có điều này, lấy cảm hứng từ phía trên: làm nổi bật cho đến khi 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>
Bây giờ, n
ngay cả khi không hlsearch
chỉ cho tôi nơi tôi hạ cánh cho đến khi tôi di chuyển con trỏ. Cái SpellRare
này được sử dụng để làm cho nó trở nên dễ rụng hơn khi chỉ có một nhân vật duy nhất khớp với nhau, nếu không thì nó rất mượtIncSearch