blob: bec4580bdc1100f23b8498a3b16fca30e3ff822c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
" 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>
|