LunarVim/general/functions.vim
2020-05-08 22:12:01 -04:00

21 lines
584 B
VimL

" 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>