Created
January 27, 2013 16:46
-
-
Save Cl3MM/4649196 to your computer and use it in GitHub Desktop.
Vim support file to help with paste mappings and menus
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" 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 | |
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment