| 
									
										
										
										
											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-06-23 15:25:34 +00:00
										 |  |  |  | " Last Change:	2006 Jun 23 | 
					
						
							| 
									
										
										
										
											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'] | 
					
						
							| 
									
										
										
										
											2006-06-23 15:25:34 +00:00
										 |  |  |  |   let paste#paste_cmd['i'] = 'x<BS><Esc>' . paste#paste_cmd['n'] . 'gi' | 
					
						
							| 
									
										
										
										
											2006-03-09 22:27:48 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |   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 |