Skip to content

Commit b05641c

Browse files
committed
Fix #183
1 parent ac78ab4 commit b05641c

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

autoload/vsnip/session.vim

+27-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ function! s:Session.select(jump_point) abort
139139
execute printf('normal! %s', l:cmd)
140140
else
141141
let l:cmd .= "o\<C-g>"
142-
call feedkeys(l:cmd, 'n')
142+
call s:feedkeys(l:cmd, 'n')
143143
endif
144144
endfunction
145145

@@ -251,3 +251,29 @@ function! s:Session.store(changenr) abort
251251
\ }
252252
endfunction
253253

254+
inoremap <silent><expr> <Plug>(_vsnip-feedkeys-s) <SID>feedkeys_s()
255+
inoremap <silent><expr> <Plug>(_vsnip-feedkeys-e) <SID>feedkeys_e()
256+
nnoremap <silent><expr> <Plug>(_vsnip-feedkeys-s) <SID>feedkeys_s()
257+
nnoremap <silent><expr> <Plug>(_vsnip-feedkeys-e) <SID>feedkeys_e()
258+
xnoremap <silent><expr> <Plug>(_vsnip-feedkeys-s) <SID>feedkeys_s()
259+
xnoremap <silent><expr> <Plug>(_vsnip-feedkeys-e) <SID>feedkeys_e()
260+
snoremap <silent><expr> <Plug>(_vsnip-feedkeys-s) <SID>feedkeys_s()
261+
snoremap <silent><expr> <Plug>(_vsnip-feedkeys-e) <SID>feedkeys_e()
262+
function! s:feedkeys_s() abort
263+
let s:selection = &selection
264+
set selection=inclusive
265+
return "\<Ignore>"
266+
endfunction
267+
function! s:feedkeys(keys, mode) abort
268+
call feedkeys("\<Plug>(_vsnip-feedkeys-s)", '')
269+
call feedkeys(a:keys, a:mode)
270+
call feedkeys("\<Plug>(_vsnip-feedkeys-e)", '')
271+
endfunction
272+
function! s:feedkeys_e() abort
273+
if exists('s:selection')
274+
let &selection = s:selection
275+
unlet s:selection
276+
endif
277+
return "\<Ignore>"
278+
endfunction
279+

0 commit comments

Comments
 (0)