35 lines · 1.2 KB · Text
RawDownload
" Vim support file to help with paste mappings and menus" Maintainer:	Bram Moolenaar <Bram@vim.org>" Last Change:	2006 Jun 23 " 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'] = 'x<BS><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  endfuncelse  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