2006-03-09 22:27:48 +00:00
|
|
|
|
" Vim support file to help with paste mappings and menus
|
|
|
|
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
2006-04-21 22:12:41 +00:00
|
|
|
|
" Last Change: 2006 Apr 21
|
2006-03-09 22:27:48 +00:00
|
|
|
|
|
|
|
|
|
" 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
|