updated for version 7.0219
diff --git a/runtime/autoload/paste.vim b/runtime/autoload/paste.vim
new file mode 100644
index 0000000..435c5e6
--- /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