diff options
author | Bram Moolenaar <Bram@vim.org> | 2006-03-09 22:27:48 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2006-03-09 22:27:48 +0000 |
commit | 0fd9289de3079583cd19c88425277b99b5a15253 (patch) | |
tree | 065beae578d42ca17b8e9f96807d3cc06fff8a85 /runtime/autoload/paste.vim | |
parent | a3227e2b15600b2303e3aac070803021e76ed6d5 (diff) | |
download | vim-git-0fd9289de3079583cd19c88425277b99b5a15253.tar.gz |
updated for version 7.0219
Diffstat (limited to 'runtime/autoload/paste.vim')
-rw-r--r-- | runtime/autoload/paste.vim | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/runtime/autoload/paste.vim b/runtime/autoload/paste.vim new file mode 100644 index 000000000..435c5e623 --- /dev/null +++ b/runtime/autoload/paste.vim @@ -0,0 +1,39 @@ +" Vim support file to help with paste mappings and menus +" Maintainer: Bram Moolenaar <Bram@vim.org> +" Last Change: 2006 Mar 09 + +" 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'] = '<Esc>' . paste#paste_cmd['n'] . 'gi' + + 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 + +if has("virtualedit") +else +endif |