জিনিসগুলিকে ন্যূনতম রাখার জন্য, তবে এখনও আমার পক্ষে নিখুঁতভাবে কাজ করে, উপরে থেকে অনুপ্রাণিত হয়ে আমার কাছে এটি রয়েছে: স্পষ্ট হাইলাইট হওয়া পর্যন্ত 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>
এখন, n
এমনকি hlsearch
কার্সারটি সরিয়ে না দেওয়া পর্যন্ত আমি কোথায় গিয়ে পৌঁছেছি তা আমাকে প্রদর্শন ছাড়াই । SpellRare
, এটি আরো ovbious যখন শুধুমাত্র একটি একক চরিত্র ম্যাচ করতে ব্যবহার করা হয় অন্যথায় এটি মসৃণ এরIncSearch