| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Set options and add mapping such that Vim behaves a lot like MS-Windows | 
					
						
							|  |  |  | " | 
					
						
							|  |  |  | " Maintainer:	Bram Moolenaar <Bram@vim.org> | 
					
						
							| 
									
										
										
										
											2017-10-28 18:36:48 +02:00
										 |  |  | " Last change:	2017 Oct 28 | 
					
						
							| 
									
										
										
										
											2004-07-29 08:43:53 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " bail out if this isn't wanted (mrsvim.vim uses this). | 
					
						
							|  |  |  | if exists("g:skip_loading_mswin") && g:skip_loading_mswin | 
					
						
							|  |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " set the 'cpoptions' to its Vim default | 
					
						
							|  |  |  | if 1	" only do this when compiled with expression evaluation | 
					
						
							|  |  |  |   let s:save_cpo = &cpoptions | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | set cpo&vim | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " set 'selection', 'selectmode', 'mousemodel' and 'keymodel' for MS-Windows | 
					
						
							|  |  |  | behave mswin | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " backspace and cursor keys wrap to previous/next line | 
					
						
							|  |  |  | set backspace=indent,eol,start whichwrap+=<,>,[,] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " backspace in Visual mode deletes selection | 
					
						
							|  |  |  | vnoremap <BS> d | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-09 20:22:30 +01:00
										 |  |  | if has("clipboard") | 
					
						
							|  |  |  |     " CTRL-X and SHIFT-Del are Cut | 
					
						
							|  |  |  |     vnoremap <C-X> "+x | 
					
						
							|  |  |  |     vnoremap <S-Del> "+x | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-09 20:22:30 +01:00
										 |  |  |     " CTRL-C and CTRL-Insert are Copy | 
					
						
							|  |  |  |     vnoremap <C-C> "+y | 
					
						
							|  |  |  |     vnoremap <C-Insert> "+y | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-09 20:22:30 +01:00
										 |  |  |     " CTRL-V and SHIFT-Insert are Paste | 
					
						
							|  |  |  |     map <C-V>		"+gP | 
					
						
							|  |  |  |     map <S-Insert>		"+gP | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-09 20:22:30 +01:00
										 |  |  |     cmap <C-V>		<C-R>+ | 
					
						
							|  |  |  |     cmap <S-Insert>		<C-R>+ | 
					
						
							|  |  |  | endif | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " 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. | 
					
						
							| 
									
										
										
										
											2006-03-09 22:37:52 +00:00
										 |  |  | " Uses the paste.vim autoload script. | 
					
						
							| 
									
										
										
										
											2012-07-12 22:01:11 +02:00
										 |  |  | " Use CTRL-G u to have CTRL-Z only undo the paste. | 
					
						
							| 
									
										
										
										
											2006-03-09 22:37:52 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-09 20:22:30 +01:00
										 |  |  | if 1 | 
					
						
							|  |  |  |     exe 'inoremap <script> <C-V> <C-G>u' . paste#paste_cmd['i'] | 
					
						
							|  |  |  |     exe 'vnoremap <script> <C-V> ' . paste#paste_cmd['v'] | 
					
						
							|  |  |  | endif | 
					
						
							| 
									
										
										
										
											2006-03-09 22:37:52 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | imap <S-Insert>		<C-V> | 
					
						
							|  |  |  | vmap <S-Insert>		<C-V> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Use CTRL-Q to do what CTRL-V used to do | 
					
						
							|  |  |  | noremap <C-Q>		<C-V> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Use CTRL-S for saving, also in Insert mode | 
					
						
							|  |  |  | noremap <C-S>		:update<CR> | 
					
						
							|  |  |  | vnoremap <C-S>		<C-C>:update<CR> | 
					
						
							|  |  |  | inoremap <C-S>		<C-O>:update<CR> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " For CTRL-V to work autoselect must be off. | 
					
						
							|  |  |  | " On Unix we have two selections, autoselect can be used. | 
					
						
							|  |  |  | if !has("unix") | 
					
						
							|  |  |  |   set guioptions-=a | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " CTRL-Z is Undo; not in cmdline though | 
					
						
							|  |  |  | noremap <C-Z> u | 
					
						
							|  |  |  | inoremap <C-Z> <C-O>u | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " CTRL-Y is Redo (although not repeat); not in cmdline though | 
					
						
							|  |  |  | noremap <C-Y> <C-R> | 
					
						
							|  |  |  | inoremap <C-Y> <C-O><C-R> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Alt-Space is System menu | 
					
						
							|  |  |  | if has("gui") | 
					
						
							|  |  |  |   noremap <M-Space> :simalt ~<CR> | 
					
						
							|  |  |  |   inoremap <M-Space> <C-O>:simalt ~<CR> | 
					
						
							|  |  |  |   cnoremap <M-Space> <C-C>:simalt ~<CR> | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " CTRL-A is Select all | 
					
						
							|  |  |  | noremap <C-A> gggH<C-O>G | 
					
						
							|  |  |  | inoremap <C-A> <C-O>gg<C-O>gH<C-O>G | 
					
						
							|  |  |  | cnoremap <C-A> <C-C>gggH<C-O>G | 
					
						
							| 
									
										
										
										
											2006-03-28 21:08:56 +00:00
										 |  |  | onoremap <C-A> <C-C>gggH<C-O>G | 
					
						
							| 
									
										
										
										
											2006-04-05 20:41:53 +00:00
										 |  |  | snoremap <C-A> <C-C>gggH<C-O>G | 
					
						
							|  |  |  | xnoremap <C-A> <C-C>ggVG | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " CTRL-Tab is Next window | 
					
						
							|  |  |  | noremap <C-Tab> <C-W>w | 
					
						
							|  |  |  | inoremap <C-Tab> <C-O><C-W>w | 
					
						
							|  |  |  | cnoremap <C-Tab> <C-C><C-W>w | 
					
						
							| 
									
										
										
										
											2006-03-28 21:08:56 +00:00
										 |  |  | onoremap <C-Tab> <C-C><C-W>w | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " CTRL-F4 is Close window | 
					
						
							|  |  |  | noremap <C-F4> <C-W>c | 
					
						
							|  |  |  | inoremap <C-F4> <C-O><C-W>c | 
					
						
							|  |  |  | cnoremap <C-F4> <C-C><C-W>c | 
					
						
							| 
									
										
										
										
											2006-03-28 21:08:56 +00:00
										 |  |  | onoremap <C-F4> <C-C><C-W>c | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-09 20:22:30 +01:00
										 |  |  | if has("gui") | 
					
						
							|  |  |  |   " CTRL-F is the search dialog | 
					
						
							| 
									
										
										
										
											2017-10-28 18:36:48 +02:00
										 |  |  |   noremap  <expr> <C-F> has("gui_running") ? ":promptfind\<CR>" : "/" | 
					
						
							|  |  |  |   inoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-O>:promptfind\<CR>" : "\<C-\>\<C-O>/" | 
					
						
							|  |  |  |   cnoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-C>:promptfind\<CR>" : "\<C-\>\<C-O>/" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " CTRL-H is the replace dialog, | 
					
						
							|  |  |  |   " but in console, it might be backspace, so don't map it there | 
					
						
							|  |  |  |   nnoremap <expr> <C-H> has("gui_running") ? ":promptrepl\<CR>" : "\<C-H>" | 
					
						
							|  |  |  |   inoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-O>:promptrepl\<CR>" : "\<C-H>" | 
					
						
							|  |  |  |   cnoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-C>:promptrepl\<CR>" : "\<C-H>" | 
					
						
							| 
									
										
										
										
											2017-02-09 20:22:30 +01:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " restore 'cpoptions' | 
					
						
							|  |  |  | set cpo& | 
					
						
							|  |  |  | if 1 | 
					
						
							|  |  |  |   let &cpoptions = s:save_cpo | 
					
						
							|  |  |  |   unlet s:save_cpo | 
					
						
							|  |  |  | endif |