LunarVim/general/functions.vim

22 lines
584 B
VimL
Raw Normal View History

2020-05-09 04:12:01 +02:00
" distinct highlight current, first and last match when searching
function! HLCurrent() abort
if exists("currmatch")
call matchdelete(currmatch)
endif
" only on cursor
let patt = '\c\%#'.@/
" check prev and next match
let prevmatch = search(@/, 'bWn')
let nextmatch = search(@/, 'Wn')
" if on first or last match
if prevmatch == 0 || nextmatch == 0
let currmatch = matchadd('EdgeSearch', patt, 101)
else
let currmatch = matchadd('IncSearch', patt, 101)
endif
redraw
endfunction
nnoremap <silent> n n:call HLCurrent()<cr>
nnoremap <silent> N N:call HLCurrent()<cr>