summaryrefslogtreecommitdiff
path: root/runtime/autoload/paste.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2006-03-09 22:27:48 +0000
committerBram Moolenaar <Bram@vim.org>2006-03-09 22:27:48 +0000
commit0fd9289de3079583cd19c88425277b99b5a15253 (patch)
tree065beae578d42ca17b8e9f96807d3cc06fff8a85 /runtime/autoload/paste.vim
parenta3227e2b15600b2303e3aac070803021e76ed6d5 (diff)
downloadvim-git-0fd9289de3079583cd19c88425277b99b5a15253.tar.gz
updated for version 7.0219
Diffstat (limited to 'runtime/autoload/paste.vim')
-rw-r--r--runtime/autoload/paste.vim39
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