summaryrefslogtreecommitdiff
path: root/general/functions.vim
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>