1" Vim support file to help with paste mappings and menus 2" Maintainer: Bram Moolenaar <Bram@vim.org> 3" Last Change: 2006 Jun 23 4 5" Define the string to use for items that are present both in Edit, Popup and 6" Toolbar menu. Also used in mswin.vim and macmap.vim. 7 8" Pasting blockwise and linewise selections is not possible in Insert and 9" Visual mode without the +virtualedit feature. They are pasted as if they 10" were characterwise instead. Add to that some tricks to leave the cursor in 11" the right position, also for "gi". 12if has("virtualedit") 13 let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"} 14 let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n'] 15 let paste#paste_cmd['i'] = 'x<BS><Esc>' . paste#paste_cmd['n'] . 'gi' 16 17 func! paste#Paste() 18 let ove = &ve 19 set ve=all 20 normal! `^ 21 if @+ != '' 22 normal! "+gP 23 endif 24 let c = col(".") 25 normal! i 26 if col(".") < c " compensate for i<ESC> moving the cursor left 27 normal! l 28 endif 29 let &ve = ove 30 endfunc 31else 32 let paste#paste_cmd = {'n': "\"=@+.'xy'<CR>gPFx\"_2x"} 33 let paste#paste_cmd['v'] = '"-c<Esc>gix<Esc>' . paste#paste_cmd['n'] . '"_x' 34 let paste#paste_cmd['i'] = 'x<Esc>' . paste#paste_cmd['n'] . '"_s' 35endif 36