forked from aniani/vim
		
	
		
			
				
	
	
		
			36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim support file to help with paste mappings and menus
 | ||
| " Maintainer:	Bram Moolenaar <Bram@vim.org>
 | ||
| " Last Change:	2006 Apr 21
 | ||
| 
 | ||
| " 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
 |