" 璁劇疆瀛楃緙栫爜銆傚弬鑰冿細http://www.rainux.org/blog/index.php/2005/10/20/106
" encoding: Vim 鍐呴儴浣跨敤鐨勫瓧絎︾紪鐮佹柟寮忥紝鍖呮嫭 Vim 鐨?buffer (緙撳啿鍖?銆佽彍鍗曟枃
" 鏈佹秷鎭枃鏈瓑銆傜敤鎴鋒墜鍐屼笂寤鴻鍙湪 .vimrc 涓敼鍙樺畠鐨勫鹼紝浜嬪疄涓婁技涔庝篃鍙湁
" 鍦?.vimrc 涓敼鍙樺畠鐨勫兼墠鏈夋剰涔夈?/span>
"
" 鐢變簬 Unicode 鑳藉鍖呭惈鍑犱箮鎵鏈夌殑璇█鐨勫瓧絎︼紝鑰屼笖 Unicode 鐨?UTF-8 緙栫爜鏂瑰紡
" 鍙堟槸闈炲父鍏鋒湁鎬т環姣旂殑緙栫爜鏂瑰紡 (絀洪棿娑堣楁瘮 UCS-2 灝?錛屽洜姝ゅ緩璁?encoding 鐨?/span>
" 鍊艱緗負 utf-8銆傝繖涔堝仛鐨勫彟涓涓悊鐢辨槸 encoding 璁劇疆涓?utf-8 鏃訛紝Vim 鑷姩鎺?/span>
" 嫻嬫枃浠剁殑緙栫爜鏂瑰紡浼氭洿鍑嗙‘ (鎴栬榪欎釜鐞嗙敱鎵嶆槸涓昏鐨?銆?/span>
set encoding=utf-8
" fileencodings: Vim 鍚姩鏃朵細鎸夌収瀹冩墍鍒楀嚭鐨勫瓧絎︾紪鐮佹柟寮忛愪竴鎺㈡祴鍗沖皢鎵撳紑鐨勬枃
" 浠剁殑瀛楃緙栫爜鏂瑰紡錛屽茍涓斿皢 fileencoding 璁劇疆涓烘渶緇堟帰嫻嬪埌鐨勫瓧絎︾紪鐮佹柟寮忋傚洜
" 姝ゆ渶濂藉皢 Unicode 緙栫爜鏂瑰紡鏀懼埌榪欎釜鍒楄〃鐨勬渶鍓嶉潰銆?/span>
"
" 鎷変竵璇郴緙栫爜鏂瑰紡 latin1 鏈濂藉幓鎺夈傚洜涓哄鏋滄湁 latin-1錛屽湪鏂囦歡涓湁澶氱緙栫爜
" 鏂瑰紡鐨勫唴瀹規椂 (姣斿錛宎 涓?utf-8 緙栫爜鐨勪腑鏂囨枃鏈枃浠訛紝b 涓?cp936 緙栫爜鐨勪腑鏂?/span>
" 鏂囨湰鏂囦歡錛屾墽琛屽懡浠?cat b >> a 鍚庣殑 a 鏂囦歡)錛屾渶鍚?Vim 浼氬皢鏂囦歡緙栫爜璁句負
" latin-1錛屽鑷存渶緇堥潪鑻辨枃鍐呭鏄劇ず瀹屽叏涔辯爜銆?/span>
"set fileencodings=utf-8,chinese,latin-1
set fileencodings=utf-8,chinese
" fileencoding: Vim 涓綋鍓嶇紪杈戠殑鏂囦歡鐨勫瓧絎︾紪鐮佹柟寮忥紝Vim 淇濆瓨鏂囦歡鏃朵篃浼氬皢鏂?/span>
" 浠朵繚瀛樹負榪欑瀛楃緙栫爜鏂瑰紡銆?/span>
"
" 濡傛灉鎵撳紑鐨勬槸宸叉湁鐨勬枃浠訛紝鍒?Vim 浼氬皢 fileencoding 璁劇疆涓轟笂闈㈡帰嫻嬪埌鐨勫瓧絎︾紪
" 鐮侊紝姝ゅ鐨勮緗笉鍐嶆湁鏁堬紱濡傛灉鏄柊鏂囦歡錛屽垯姝ゅ鐨?fileencoding 鐢熸晥銆?/span>
if has("win32")
" 鎴戜滑鍦ㄤ腑鏂?Windows 閲岀紪杈戠殑鏂囦歡錛屼負浜嗗吋欏句笌鍏朵粬杞歡鐨勫吋瀹規э紝鏂囦歡緙栫爜
" 榪樻槸璁劇疆涓?GB2312/GBK 姣旇緝鍚堥傦紝鍥犳 fileencoding 寤鴻璁劇疆涓?chinese
" (chinese 鏄釜鍒悕錛屽湪 Unix 閲岃〃紺?gb2312錛屽湪 Windows 閲岃〃紺?cp936錛屼篃
" 灝辨槸 GBK 鐨勪唬鐮侀〉)銆?/span>
set fileencoding=chinese
else
set fileencoding=utf-8
endif
" termencoding: Vim 鎵宸ヤ綔鐨勭粓绔?(鎴栬?Windows 鐨?Console 紿楀彛) 鐨勫瓧絎︾紪鐮?/span>
" 鏂瑰紡銆傝繖涓夐」瀵?GUI 妯″紡鐨?gVim 鏃犳晥錛岃屽 Console 妯″紡鐨?Vim 鑰岃█灝辨槸
" Windows 鎺у埗鍙扮殑浠g爜欏?(瀵逛簬 Windows 鑰岃█)錛屽茍涓旈氬父鎴戜滑涓嶉渶瑕佹敼鍙樺畠銆?/span>
"
" 涓嬮潰榪欏彞鍙獎鍝嶆櫘閫氭ā寮?(闈炲浘褰㈢晫闈? 涓嬬殑 Vim銆?/span>
let &termencoding=&encoding
" 涓鑸岃█錛屽湪瀛楃緙栫爜閰嶇疆姝g‘鐨勬儏鍐典笅錛屾槸涓嶄細鍑虹幇涔辯爜闂鐨勩?/span>
" 涓囦竴涓嶅垢鑿滃崟涔辯爜 (姣斿錛宭ocale 璁劇疆涓?zh_CN.UTF-8 鑰?encoding 鍗磋緗負
" cp936 鏃躲傚綋鐒訛紝姝ゆ椂鏈濂界殑鏂規硶榪樻槸灝?encoding 璁劇疆涓?utf-8) 錛岃鍙栨秷涓?/span>
" 闈袱琛岃鍙ョ殑娉ㄩ噴銆?/span>
"source $VIMRUNTIME/delmenu.vim
"source $VIMRUNTIME/menu.vim
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 璁劇疆鍥懼艦鐣岄潰銆?/span>
"
" 瀛椾綋閮ㄥ垎錛屽彲鍙傝冦婄▼搴忓憳鏈鍠滄鐢ㄧ殑緙栫▼瀛椾綋銆嬩竴鏂囷細
" http://www.2maomao.com/blog/best-programmer-fonts/
if has("gui_running")
if has("win32")
" 璁懼畾 windows 涓?gvim 鍚姩鏃舵渶澶у寲
autocmd GUIEnter * simalt ~x
" 璁懼畾 windows 涓嬪浘褰㈢晫闈笅鐨勫瓧浣撱傝瀛椾綋闇瑕佽嚜宸變笅杞藉畨瑁咃紝涓嬭澆鍦板潃錛?/span>
" http://ftp.gnome.org/pub/GNOME/sources/ttf-bitstream-vera/1.10/ttf-bitstream-vera-1.10.zip
set guifont=Bitstream_Vera_Sans_Mono:h14:cANSI
else
" 璁懼畾 linux 涓嬪浘褰㈢晫闈笅鐨勫瓧浣擄紝璇ュ瓧浣?Fedora 7 鑷甫
set guifont=DejaVu\ LGC\ Sans\ Mono\ 14
endif
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
colorscheme evening " 璁懼畾鑳屾櫙涓哄闂存ā寮?/span>
filetype plugin on " 鑷姩璇嗗埆鏂囦歡綾誨瀷錛岃嚜鍔ㄥ尮閰嶅搴旂殑
" “鏂囦歡綾誨瀷Plugin.vim”鏂囦歡錛屼嬌鐢ㄧ緝榪涘畾涔夋枃浠?/span>
set ambiwidth=double " ambiwidth 榛樿鍊間負 single銆傚湪鍏跺間負 single 鏃訛紝
" 鑻?encoding 涓?utf-8錛実vim 鏄劇ず鍏ㄨ絎﹀彿鏃跺氨浼?/span>
" 鍑洪棶棰橈紝浼氬綋浣滃崐瑙掓樉紺恒?/span>
set autochdir " 鑷姩鍒囨崲褰撳墠鐩綍涓哄綋鍓嶆枃浠舵墍鍦ㄧ殑鐩綍
set autoindent cindent cinoptions=g0
" 鎵撳紑鑷姩緙╄繘鍜?C 璇█椋庢牸鐨勭緝榪涙ā寮忥紝
" 瀹氬埗 C 璇█緙╄繘椋庢牸
set backspace=indent,eol,start
" 涓嶈瀹氱殑璇濆湪鎻掑叆鐘舵佹棤娉曠敤閫鏍奸敭鍜?Delete
" 閿垹闄ゅ洖杞︾
set backupcopy=yes " 璁劇疆澶囦喚鏃剁殑琛屼負涓鴻鐩?/span>
if v:version >= 700
set completeopt=menu,longest,preview
" 鑷姩琛ュ叏(ctrl-p)鏃剁殑涓浜涢夐」錛?/span>
" 澶氫簬涓欏規椂鏄劇ず鑿滃崟錛屾渶闀塊夋嫨錛?/span>
" 鏄劇ず褰撳墠閫夋嫨鐨勯澶栦俊鎭?/span>
endif
set confirm " 鐢ㄧ‘璁ゅ璇濇錛堝浜?gvim錛夋垨鍛戒護琛岄夐」錛堝浜?/span>
" vim錛夋潵浠f浛鏈夋湭淇濆瓨鍐呭鏃剁殑璀﹀憡淇℃伅
set display=lastline " 闀胯涓嶈兘瀹屽叏鏄劇ず鏃舵樉紺哄綋鍓嶅睆騫曡兘鏄劇ず鐨勯儴鍒嗐?/span>
" 榛樿鍊間負絀猴紝闀胯涓嶈兘瀹屽叏鏄劇ず鏃舵樉紺?@銆?/span>
set expandtab " 灝?tab 閿漿鎹負絀烘牸
set formatoptions=tcqro " 浣垮緱娉ㄩ噴鎹㈣鏃惰嚜鍔ㄥ姞涓婂墠瀵肩殑絀烘牸鍜屾槦鍙?/span>
set hidden " 鍏佽鍦ㄦ湁鏈繚瀛樼殑淇敼鏃跺垏鎹㈢紦鍐插尯錛?/span>
" 姝ゆ椂鐨勪慨鏀圭敱鍒囨崲鐢?vim 璐熻矗淇濆瓨
set history=50 " 璁劇疆鍐掑彿鍛戒護鍜屾悳绱㈠懡浠ょ殑鍛戒護鍘嗗彶鍒楄〃鐨勯暱搴︿負 50
set hlsearch " 鎼滅儲鏃墮珮浜樉紺鴻鎵懼埌鐨勬枃鏈?/span>
set ignorecase smartcase " 鎼滅儲鏃跺拷鐣ュぇ灝忓啓錛屼絾鍦ㄦ湁涓涓垨浠ヤ笂澶у啓瀛楁瘝鏃?/span>
" 浠嶄繚鎸佸澶у皬鍐欐晱鎰?/span>
set incsearch " 杈撳叆鎼滅儲鍐呭鏃跺氨鏄劇ず鎼滅儲緇撴灉
set mouse=a " 璁懼畾鍦ㄤ換浣曟ā寮忎笅榧犳爣閮藉彲鐢?/span>
set nobackup " 瑕嗙洊鏂囦歡鏃朵笉澶囦喚
set nocompatible " 璁懼畾 gvim 榪愯鍦ㄥ寮烘ā寮忎笅
set noignorecase " 榛樿鍖哄垎澶у皬鍐?/span>
set nolinebreak " 鍦ㄥ崟璇嶄腑闂存柇琛?/span>
set number " 鏄劇ず琛屽彿
set ruler " 鎵撳紑鐘舵佹爮鏍囧昂
"set scrolloff=5 " 璁懼畾鍏夋爣紱葷獥鍙d笂涓嬭竟鐣?5 琛屾椂紿楀彛鑷姩婊氬姩
set shiftwidth=4 " 璁懼畾 << 鍜?>> 鍛戒護縐誨姩鏃剁殑瀹藉害涓?4
set showcmd " 鍦ㄧ姸鎬佹爮鏄劇ず鐩墠鎵鎵ц鐨勬寚浠わ紝鏈畬鎴愮殑鎸囦護鐗囨浜?/span>
" 浼氭樉紺哄嚭鏉?/span>
set softtabstop=4 " 浣垮緱鎸夐鏍奸敭鏃跺彲浠ヤ竴嬈″垹鎺?4 涓┖鏍?/span>
" 錛堜笉瓚?4 涓椂鍒犳帀鎵鏈夊墿涓嬬殑絀烘牸錛?/span>
set tabstop=4 " 璁懼畾 tab 闀垮害涓?4
set whichwrap=b,s,<,>,[,] " 璁懼畾閫鏍奸敭銆佺┖鏍奸敭浠ュ強宸﹀彸鏂瑰悜閿湪琛岄琛屽熬鏃剁殑
" 琛屼負錛屼笉褰卞搷 h 鍜?l 閿?/span>
set wrap " 鑷姩鎹㈣鏄劇ず
syntax on " 鑷姩璇硶楂樹寒
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 璁劇疆鍛戒護琛屽拰鐘舵佹爮
set cmdheight=1 " 璁懼畾鍛戒護琛岀殑琛屾暟涓?1
set laststatus=2 " 鏄劇ず鐘舵佹爮 (榛樿鍊間負 1, 鏃犳硶鏄劇ず鐘舵佹爮)
set statusline=%F%m%r,%Y,%{&fileformat}\ \ \ ASCII=\%b,HEX=\%B\ \ \ %l,%c%V\ %p%%\ \ \ [\ %L\ lines\ in\ all\ ]
" 璁劇疆鍦ㄧ姸鎬佽鏄劇ず鐨勪俊鎭涓嬶細
" %F 褰撳墠鏂囦歡鍚?/span>
" %m 褰撳墠鏂囦歡淇敼鐘舵?/span>
" %r 褰撳墠鏂囦歡鏄惁鍙
" %Y 褰撳墠鏂囦歡綾誨瀷
" %{&fileformat}
" 褰撳墠鏂囦歡緙栫爜
" %b 褰撳墠鍏夋爣澶勫瓧絎︾殑 ASCII 鐮佸?/span>
" %B 褰撳墠鍏夋爣澶勫瓧絎︾殑鍗佸叚榪涘埗鍊?/span>
" %l 褰撳墠鍏夋爣琛屽彿
" %c 褰撳墠鍏夋爣鍒楀彿
" %V 褰撳墠鍏夋爣铏氭嫙鍒楀彿 (鏍規嵁瀛楃鎵鍗犲瓧鑺傛暟璁$畻)
" %p 褰撳墠琛屽崰鎬昏鏁扮殑鐧懼垎姣?/span>
" %% 鐧懼垎鍙?/span>
" %L 褰撳墠鏂囦歡鎬昏鏁?/span>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 鑷姩鍛戒護
" 璇繪枃浠舵椂鑷姩璁懼畾褰撳墠鐩綍涓哄垰璇誨叆鏂囦歡鎵鍦ㄧ殑鐩綍
autocmd BufReadPost * cd %:p:h
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 鑷畾涔夌緝鍐?/span>
function! Eatchar(pat)
let s:c = nr2char(getchar())
return (s:c =~ a:pat) ? '' : s:c
endfunction
" C 鏂囦歡澶存敞閲?/span>
iab /** /<Esc>75a*<Esc>o<Esc>0c$ * <Esc>yyADescription:<Esc>pmxpAAuthor : wplxb<Esc>pALanguage: C<Esc>pADate : <C-R>=strftime("%Y-%m-%d")<CR><Esc>p$r/74i*<Esc>0vyo<Esc>`x$9pa
" C 娉ㄩ噴
iab /// /* <Esc>mxa */<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab *** /*<Esc>yyppr A/<Esc>k0r A <C-R>=Eatchar('\s')<CR>
" C 棰勫鐞?/span>
iab #i #include <<Esc>mxa><Esc>`xa<C-R>=Eatchar('\s')<CR>
iab #d #define
" C 鍏抽敭瀛?/span>
iab if( if (<Esc>mxa)<CR>{<CR>}<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab el{ else<CR>{<Esc>mxa<CR>}<Esc>`xa<CR><C-R>=Eatchar('\s')<CR>
iab ie( if (<Esc>mxa)<CR>{<CR>}<CR>else<CR>{<CR>}<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab fo( for (<Esc>mxa; ; )<CR>{<CR>}<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab fi( for (i = 0; i < <Esc>mxa; ++i)<CR>{<CR>}<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab fi1( for (i = 1; i <= <Esc>mxa; ++i)<CR>{<CR>}<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab fj( for (j = 0; j < <Esc>mxa; ++j)<CR>{<CR>}<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab fj1( for (j = 1; j <= <Esc>mxa; ++j)<CR>{<CR>}<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab ma( int main(int argc, char * argv[])<CR>{<Esc>mxa<CR>}<Esc>`xa<CR><CR>return 0;<Esc>`xa<CR><C-R>=Eatchar('\s')<CR>
iab wh( while (<Esc>mxa)<CR>{<CR>}<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab sw( switch (<Esc>mxa)<CR>{<CR>case <Esc>mya<CR>break;<CR>case <Esc>mza<CR>break;:<Esc>xa<CR>}<Esc>`yp`zp`xa<C-R>=Eatchar('\s')<CR>
iab sd( switch (<Esc>mxa)<CR>{<CR>case <Esc>mya<CR>break;<CR>case <Esc>mza<CR>break;<CR>default:<Esc>vya<CR>}<Esc>`yp`zp`xa<C-R>=Eatchar('\s')<CR>
" C 甯哥敤搴撳嚱鏁?/span>
iab sc( scanf("<Esc>mxa", );<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab fs( fscanf(<Esc>mxa, "", );<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab ss( sscanf(<Esc>mxa, "", );<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab pr( printf("<Esc>mxa", );<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab prn( printf("<Esc>mxa\n");<Esc>`x<C-R>=Eatchar('\s')<CR>
iab fp( fprintf(<Esc>mxa, "", );<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab sp( sprintf(<Esc>mxa, "", );<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab cpy( strcpy(<Esc>mxa, );<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab cat( strcat(<Esc>mxa, );<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab len( strlen(<Esc>mxa);<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab cmp( strcmp(<Esc>mxa, );<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab qs( qsort(<Esc>mxa, , , );<Esc>`xa<C-R>=Eatchar('\s')<CR>
iab --- <Esc>75A-<Esc>a<C-R>=Eatchar('\s')<CR>
cab tn tabnew
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 閿槧灝?/span>
nmap <F12> :%s,\s\+$,,g<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""