"====================================================================== " " viminit.vim - Vim initialize script " " Maintainer: skywind3000 (at) gmail.com " Last Modified: 2023/08/11 00:30 " " Tiny script which makes vim become neat and handy, supports vim.tiny " "====================================================================== " vim: set et fenc=utf-8 ff=unix sts=8 sw=4 ts=4 : "---------------------------------------------------------------------- " core initialize "---------------------------------------------------------------------- set nocompatible set backspace=eol,start,indent set autoindent set cindent set winaltkeys=no set nowrap set ttimeout set ttimeoutlen=50 set cmdheight=1 set ruler set nopaste set display=lastline set shiftwidth=4 set softtabstop=4 set noexpandtab set tabstop=4 if has('multi_byte') set encoding=utf-8 set fileencoding=utf-8 set fileencodings=ucs-bom,utf-8,gbk,gb18030,big5,euc-jp,latin1 endif set formatoptions+=m set formatoptions+=B set showcmd "---------------------------------------------------------------------- " map CTRL_HJKL to move cursor in all modes " some old terminal softwares will send ^H for by default, " change your terminal settings to bind to ASCII code 127. "---------------------------------------------------------------------- noremap noremap noremap noremap inoremap inoremap inoremap inoremap "---------------------------------------------------------------------- " buffer keymap "---------------------------------------------------------------------- nnoremap \bn :bn nnoremap \bp :bp nnoremap \bm :bm nnoremap \bv :vs nnoremap \bs :sp nnoremap \bd :bdelete nnoremap \bl :ls nnoremap \bb :ls:b "---------------------------------------------------------------------- " window keymaps "---------------------------------------------------------------------- nnoremap \ww w nnoremap \wv v nnoremap \ws s nnoremap \wh h nnoremap \wj j nnoremap \wk k nnoremap \wl l nnoremap \wc c nnoremap \wo o nnoremap \wp p nnoremap \w1 :1wincmd w nnoremap \w2 :2wincmd w nnoremap \w3 :3wincmd w nnoremap \w4 :4wincmd w nnoremap \w5 :5wincmd w nnoremap \w6 :6wincmd w nnoremap \w7 :7wincmd w nnoremap \w8 :8wincmd w nnoremap \w9 :9wincmd w "---------------------------------------------------------------------- " tab keymap "---------------------------------------------------------------------- nnoremap \tc :tabnew nnoremap \tv :tabclose nnoremap \tn :tabnext nnoremap \tp :tabprev nnoremap \to :tabonly nnoremap \th :tabmove -1 nnoremap \tl :tabmove +1 nnoremap \ta g nnoremap \1 :tabn 1 nnoremap \2 :tabn 2 nnoremap \3 :tabn 3 nnoremap \4 :tabn 4 nnoremap \5 :tabn 5 nnoremap \6 :tabn 6 nnoremap \7 :tabn 7 nnoremap \8 :tabn 8 nnoremap \9 :tabn 9 nnoremap \0 :tabn 10 nnoremap :tabnext inoremap :tabnext "---------------------------------------------------------------------- " tab keymap in gvim "---------------------------------------------------------------------- if has('gui_running') noremap :tabprev inoremap :tabprev noremap :tabn 1 noremap :tabn 2 noremap :tabn 3 noremap :tabn 4 noremap :tabn 5 noremap :tabn 6 noremap :tabn 7 noremap :tabn 8 noremap :tabn 9 noremap :tabn 10 inoremap :tabn 1 inoremap :tabn 2 inoremap :tabn 3 inoremap :tabn 4 inoremap :tabn 5 inoremap :tabn 6 inoremap :tabn 7 inoremap :tabn 8 inoremap :tabn 9 inoremap :tabn 10 noremap :tabprev noremap :tabnext inoremap :tabprev inoremap :tabnext endif "---------------------------------------------------------------------- " tab keymap in macvim "---------------------------------------------------------------------- if has("gui_macvim") set macmeta noremap :tabprev inoremap :tabprev noremap :tabn 1 noremap :tabn 2 noremap :tabn 3 noremap :tabn 4 noremap :tabn 5 noremap :tabn 6 noremap :tabn 7 noremap :tabn 8 noremap :tabn 9 noremap :tabn 10 inoremap :tabn 1 inoremap :tabn 2 inoremap :tabn 3 inoremap :tabn 4 inoremap :tabn 5 inoremap :tabn 6 inoremap :tabn 7 inoremap :tabn 8 inoremap :tabn 9 inoremap :tabn 10 noremap :browse tabnew inoremap :browse tabnew endif "---------------------------------------------------------------------- " gvim keymaps "---------------------------------------------------------------------- if has('gui_running') noremap :tabnew inoremap :tabnew noremap :tabclose inoremap :tabclose noremap :close inoremap :close noremap :w inoremap :w endif "---------------------------------------------------------------------- " miscs "---------------------------------------------------------------------- set scrolloff=2 set showmatch set matchtime=3 set listchars=tab:\|\ ,trail:.,extends:>,precedes:< " window management nnoremap h h nnoremap j j nnoremap k k nnoremap l l nnoremap w w nnoremap c c nnoremap + + nnoremap - - nnoremap , < nnoremap . > nnoremap = = nnoremap s s nnoremap v v nnoremap o o nnoremap p p " tab enhancement nnoremap nnoremap f nnoremap b " insert mode as emacs inoremap inoremap inoremap inoremap inoremap inoremap " faster command mode cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap " quit all nnoremap Q :confirm qall "---------------------------------------------------------------------- " unimpaired "---------------------------------------------------------------------- nnoremap [a :previous nnoremap ]a :next nnoremap [A :first nnoremap ]A :last nnoremap [b :bprevious nnoremap ]b :bnext nnoremap [B :bfirst nnoremap ]B :blast nnoremap [w :tabprevious nnoremap ]w :tabnext nnoremap [W :tabfirst nnoremap ]W :tablast nnoremap [q :cprevious nnoremap ]q :cnext nnoremap [Q :cfirst nnoremap ]Q :clast nnoremap [l :lprevious nnoremap ]l :lnext nnoremap [L :lfirst nnoremap ]L :llast nnoremap [t :tprevious nnoremap ]t :tnext nnoremap [T :tfirst nnoremap ]T :tlast " unimpaired options nnoremap [oc :setl cursorline nnoremap ]oc :setl nocursorline nnoremap [os :setl spell nnoremap ]os :setl nospell nnoremap [op :setl paste nnoremap ]op :setl nopaste nnoremap [ow :setl wrap nnoremap ]ow :setl nowrap