Do not prepend COUNT"REGISTER when feeding keys in insert mode

Close #543
This commit is contained in:
Junegunn Choi 2016-10-25 23:12:05 +09:00
parent f4427b97f1
commit 49c6b781e0
No known key found for this signature in database
GPG key ID: 254BC280FEF9C627

View file

@ -257,8 +257,8 @@ function! plug#end()
for [mode, map_prefix, key_prefix] in
\ [['i', '<C-O>', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']]
execute printf(
\ '%snoremap <silent> %s %s:<C-U>call <SID>lod_map(%s, %s, "%s")<CR>',
\ mode, map, map_prefix, string(map), string(names), key_prefix)
\ '%snoremap <silent> %s %s:<C-U>call <SID>lod_map(%s, %s, %s, "%s")<CR>',
\ mode, map, map_prefix, string(map), string(names), mode != 'i', key_prefix)
endfor
endfor
@ -498,7 +498,7 @@ function! s:lod_cmd(cmd, bang, l1, l2, args, names)
execute printf('%s%s%s %s', (a:l1 == a:l2 ? '' : (a:l1.','.a:l2)), a:cmd, a:bang, a:args)
endfunction
function! s:lod_map(map, names, prefix)
function! s:lod_map(map, names, with_prefix, prefix)
call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin'])
call s:dobufread(a:names)
let extra = ''
@ -510,15 +510,17 @@ function! s:lod_map(map, names, prefix)
let extra .= nr2char(c)
endwhile
let prefix = v:count ? v:count : ''
let prefix .= '"'.v:register.a:prefix
if mode(1) == 'no'
if v:operator == 'c'
let prefix = "\<esc>" . prefix
if a:with_prefix
let prefix = v:count ? v:count : ''
let prefix .= '"'.v:register.a:prefix
if mode(1) == 'no'
if v:operator == 'c'
let prefix = "\<esc>" . prefix
endif
let prefix .= v:operator
endif
let prefix .= v:operator
call feedkeys(prefix, 'n')
endif
call feedkeys(prefix, 'n')
call feedkeys(substitute(a:map, '^<Plug>', "\<Plug>", '') . extra)
endfunction