aboutsummaryrefslogtreecommitdiffstats
path: root/autoload/searchop.vim
blob: 6912787e1ee891561e3ddab56532f981b7051406 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function! s:Search(type, ...)
	let user_unnamed_register = @@

	if a:0
		silent execute "normal! gvy"
	elseif a:type == 'line'
		silent execute "normal! '[V']y"
	else
		silent execute "normal! `[v`]y"
	endif

	let @/ = substitute(escape(@@, '\'), '\n', '\\n', 'g')
	call histadd('/', @/)

	let @@ = user_unnamed_register
endfunction

function! searchop#SearchForward(type, ...)
	call call('s:Search', [a:type] + a:000)

	call feedkeys('n', 't')
endfunction

function! searchop#SearchBackward(type, ...)
	call call('s:Search', [a:type] + a:000)

	call feedkeys('N', 't')
endfunction