Created
November 28, 2015 15:39
-
-
Save jargnar/a3df505f653b126250d2 to your computer and use it in GitHub Desktop.
For vim on windows
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
" Set options and add mapping such that Vim behaves a lot like MS-Windows | |
" | |
" Maintainer: Bram Moolenaar <[email protected]> | |
" 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment