diff options
Diffstat (limited to 'runtime/autoload/paste.vim')
-rw-r--r-- | runtime/autoload/paste.vim | 46 |
1 files changed, 18 insertions, 28 deletions
diff --git a/runtime/autoload/paste.vim b/runtime/autoload/paste.vim index dd7b3ae54a..2d787e7a1d 100644 --- a/runtime/autoload/paste.vim +++ b/runtime/autoload/paste.vim @@ -1,35 +1,25 @@ " Vim support file to help with paste mappings and menus " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2017 Aug 30 +" Last Change: 2019 Jan 27 " Define the string to use for items that are present both in Edit, Popup and " Toolbar menu. Also used in mswin.vim and macmap.vim. -" Pasting blockwise and linewise selections is not possible in Insert and -" Visual mode without the +virtualedit feature. They are pasted as if they -" were characterwise instead. Add to that some tricks to leave the cursor in -" the right position, also for "gi". -if has("virtualedit") - let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"} - let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n'] - let paste#paste_cmd['i'] = "\<c-\>\<c-o>\"+gP" +let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"} +let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n'] +let paste#paste_cmd['i'] = "\<c-\>\<c-o>\"+gP" - func! paste#Paste() - let ove = &ve - set ve=all - normal! `^ - if @+ != '' - normal! "+gP - endif - let c = col(".") - normal! i - if col(".") < c " compensate for i<ESC> moving the cursor left - normal! l - endif - let &ve = ove - endfunc -else - let paste#paste_cmd = {'n': "\"=@+.'xy'<CR>gPFx\"_2x"} - let paste#paste_cmd['v'] = '"-c<Esc>gix<Esc>' . paste#paste_cmd['n'] . '"_x' - let paste#paste_cmd['i'] = 'x<Esc>' . paste#paste_cmd['n'] . '"_s' -endif +func! paste#Paste() + let ove = &ve + set ve=all + normal! `^ + if @+ != '' + normal! "+gP + endif + let c = col(".") + normal! i + if col(".") < c " compensate for i<ESC> moving the cursor left + normal! l + endif + let &ve = ove +endfunc |