mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			108 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Set options and add mapping such that Vim behaves a lot like MS-Windows
 | |
| "
 | |
| " Maintainer:	Bram Moolenaar <Bram@vim.org>
 | |
| " Last change:	2012 Jul 25
 | |
| 
 | |
| " bail out if this isn't wanted (mrsvim.vim uses this).
 | |
| if exists("g:skip_loading_mswin") && g:skip_loading_mswin
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| " 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
 | |
| 
 | |
| " CTRL-X and SHIFT-Del are Cut
 | |
| vnoremap <C-X> "+x
 | |
| vnoremap <S-Del> "+x
 | |
| 
 | |
| " CTRL-C and CTRL-Insert are Copy
 | |
| vnoremap <C-C> "+y
 | |
| vnoremap <C-Insert> "+y
 | |
| 
 | |
| " CTRL-V and SHIFT-Insert are Paste
 | |
| map <C-V>		"+gP
 | |
| map <S-Insert>		"+gP
 | |
| 
 | |
| cmap <C-V>		<C-R>+
 | |
| cmap <S-Insert>		<C-R>+
 | |
| 
 | |
| " 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.
 | |
| " Uses the paste.vim autoload script.
 | |
| " Use CTRL-G u to have CTRL-Z only undo the paste.
 | |
| 
 | |
| exe 'inoremap <script> <C-V> <C-G>u' . paste#paste_cmd['i']
 | |
| exe 'vnoremap <script> <C-V> ' . paste#paste_cmd['v']
 | |
| 
 | |
| 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
 | |
| onoremap <C-A> <C-C>gggH<C-O>G
 | |
| snoremap <C-A> <C-C>gggH<C-O>G
 | |
| xnoremap <C-A> <C-C>ggVG
 | |
| 
 | |
| " 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
 | |
| onoremap <C-Tab> <C-C><C-W>w
 | |
| 
 | |
| " 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
 | |
| onoremap <C-F4> <C-C><C-W>c
 | |
| 
 | |
| " restore 'cpoptions'
 | |
| set cpo&
 | |
| if 1
 | |
|   let &cpoptions = s:save_cpo
 | |
|   unlet s:save_cpo
 | |
| endif
 |