Vim是Linux上的著名的文本編輯器,他是早年的Vi編輯器的增強版。gVim是windows版的,而且有了標準的windows風格的圖形 界面,因此叫g(graphical)Vim。若是是非專業使用的,其實他們(Vim和gVim)之間差異不大。Vim和Emacs 都被稱爲是神器,並造成兩大派別,儘管我很是但願雙方能和諧相處,但是現實貌似是誰也不怎麼服對方。 php
Vim之因此強大,其緣由之一就是給予用戶最大的支配權,讓用戶能夠自由配置改形成任何本身但願的形式。安裝完Vim後,默認的配置文件像一張白紙,須要你去繪畫。先來看看配置以後的效果吧(點擊可查看高清原圖): java
(1)Vim語法高亮、行號、自動縮進等 python
(2)Vim目錄樹(需小插件,文章後面附下載) vim
下面和你們分享我本身使用的gVim配置文件,對於Vim一樣適用。Windows下Vim的配置文件位置:D:/Program Files/Vim_vimrc(即你的Vim安裝位置,我安裝在D:/Program Files);Linux下Vim的配置文件位置:/etc/vim/gvimrc。 windows
請根據本身的須要進行添加和修改,例如你沒接觸C++/JAVA這些語言的,後面相關的配置就不用添加;如你喜歡,所有拿去也能夠。添加到對應的配置文件最後就能夠了(注:相似」 配色方案的是註釋,請確保左雙引號是半角): ruby
" 配色方案 colo liveme " 編碼設置 set enc=utf-8 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 " 設置菜單語言 set langmenu=zh_CN.UTF-8 " 導入刪除菜單腳本,刪除亂碼的菜單 source $VIMRUNTIME/delmenu.vim " 導入正常的菜單腳本 source $VIMRUNTIME/menu.vim " 設置提示信息語言 language messages zh_CN.utf-8 " 字體設置 set guifont=Monaco:h12:cANSI " 語法高亮 set syntax=on " 自動縮進 set autoindent " C語言方式縮進 set cindent " 智能縮進 set smartindent " 統一縮進爲4 set softtabstop=4 set shiftwidth=4 " 默認窗口大小 set lines=30 columns=82 " 自動換行 set wrap " 整詞換行 set linebreak " 顯示行號 set number " 高亮顯示匹配的括號 set showmatch " 搜索逐字符高亮和實時搜索 set hlsearch set incsearch " 匹配括號高亮的時間(單位是十分之一秒) set matchtime=5 " 顯示括號配對狀況 set showmatch " 代碼摺疊 " set fdm=indent " 選擇代碼摺疊類型 set foldmethod=syntax " 禁止自動摺疊 set foldlevel=100 " 命令行(在狀態行下)的高度,默認爲1,這裏是2 set cmdheight=2 " 歷史記錄數 set history=1000 " 偵測文件類型 filetype on " 爲特定文件類型載入相關縮進格式 filetype indent on " 爲特定的文件類型載入對應的插件 filetype plugin on filetype plugin indent on " 不與vi兼容 set nocp " vim目錄樹插件 map <F10> :NERDTreeToggle<CR> " 保存全局變量 set viminfo+=! " 帶有以下符號的單詞不要被換行分割 set iskeyword+=_,$,@,%,#,- " 字符間插入的像素行數目 set linespace=0 " 加強模式中的命令行自動完成操做 set wildmenu " PHP語法提示 autocmd FileType php set omnifunc=phpcomplete " 禁止生成臨時文件 set nobackup set noswapfile " 設置退格鍵可用 set backspace=2 " 快捷鍵自定義 map <C-s> :w<CR> imap <C-s> <C-o>:w<CR> " 隱藏工具欄,可用快捷鍵F2切換 set guioptions-=T map <silent> <F2> :if &guioptions =~# 'T' <Bar> set guioptions-=T <Bar> else <Bar> set guioptions+=T <Bar> endif<CR> " 可以漂亮地顯示.NFO文件 set encoding=utf-8 function! SetFileEncodings(encodings) let b:myfileencodingsbak=&fileencodings let &fileencodings=a:encodings endfunction function! RestoreFileEncodings() let &fileencodings=b:myfileencodingsbak unlet b:myfileencodingsbak endfunction au BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single au BufReadPost *.nfo call RestoreFileEncodings() " F5編譯和運行C程序,F6編譯和運行C++程序 " C的編譯和運行 map <F5> :call CompileRunGcc()<CR> func! CompileRunGcc() exec "w" exec "!gcc -Wall % -o %<" exec "! ./%<" endfunc " C++的編譯和運行 map <F6> :call CompileRunGpp()<CR> func! CompileRunGpp() exec "w" exec "!g++ -Wall % -o %<" exec "! ./%<" endfunc " Gvim標籤訂製 set guitablabel=%{ShortTabLabel()} function ShortTabLabel () let bufnrlist = tabpagebuflist (v:lnum) let label = bufname (bufnrlist[tabpagewinnr (v:lnum) -1]) let filename = fnamemodify (label, ':t') return filename endfunction " ######### 一鍵保存和編譯 ######### " "編譯C源文件 func! CompileGcc() exec "w" let compilecmd="!gcc -Wall -std=c99 " let compileflag="-o %<" exec compilecmd." % ".compileflag endfunc " 編譯C++源文件 func! CompileCpp() exec "w" let compilecmd="!g++ -Wall " let compileflag="-o %<" exec compilecmd." % ".compileflag endfunc " 編譯&連接Go源文件 func! CompileGo() exec "w" exec "!8g %" exec "!8l -o %<.exe %<.8" endfunc " 編譯Haskell源文件 func! CompileHaskell() exec "w" let compilecmd="!ghc --make " let compileflag="-o %<" exec compilecmd." % ".compileflag endfunc " 編譯Java源文件 func! CompileJava() exec "w" exec "!javac %" endfunc " 編譯C#源文件 func! CompileCs() exec "w" exec "!csc %" endfunc " 編譯Gas源文件 func! CompileGas() exec "w" exec "!gcc -Wall -ggdb -o %< %" endfunc " 運行Shell源文件 func! RunShell() exec "w" exec "!sh %" endfunc " 運行Lua源文件 func! RunLua() exec "w" exec "!lua %" endfunc " 運行Perl源文件 func! RunPerl() exec "w" exec "!perl %" endfunc " 運行Python源文件 func! RunPython() exec "w" exec "!python %" endfunc " 運行Ruby源文件 func! RunRuby() exec "w" exec "!ruby %" endfunc " 根據文件類型自動選擇相應的編譯函數 func! CompileCode() exec "w" if &filetype == "c" exec "call CompileGcc()" elseif &filetype == "cpp" exec "call CompileCpp()" elseif &filetype == "go" exec "call CompileGo()" elseif &filetype == "haskell" exec "call CompileHaskell()" elseif &filetype == "java" exec "call CompileJava()" elseif &filetype == "cs" exec "call CompileCs()" elseif &filetype == "asm" exec "call CompileGas()" elseif &filetype == "sh" exec "call RunShell()" elseif &filetype == "lua" exec "call RunLua()" elseif &filetype == "perl" exec "call RunPerl()" elseif &filetype == "python" exec "call RunPython()" elseif &filetype == "ruby" exec "call RunRuby()" endif endfunc " 運行可執行文件 func! RunResult() exec "w" if &filetype == "c" exec "! %<" elseif &filetype == "cpp" exec "! %<" elseif &filetype == "go" exec "! %<" elseif &filetype == "haskell" exec "! %<" elseif &filetype == "java" exec "!java %<" elseif &filetype == "cs" exec "! %<" elseif &filetype == "asm" exec "! %<" elseif &filetype == "sh" exec "!sh %<.sh" elseif &filetype == "lua" exec "!lua %<.lua" elseif &filetype == "perl" exec "!perl %<.pl" elseif &filetype == "python" exec "!python %<.py" elseif &filetype == "ruby" exec "!ruby %<.rb" endif endfunc
附:Vim配置文件下載:Vim配置文件 編輯器
有了配置文件還不能達到我上面的效果,還須要配色方案。本配色方案改自desert,爲了讓你們方便使用,且不損壞Vim原文件,故我將其另命名爲liveme,綠色環保嘛。使用方法:下載下面的liveme.vim文件放到你的Vim安裝目錄下的vim73colors下面便可。 函數
gVim(Vim)配色方案下載:liveme.vim 工具
附:目錄樹插件下載: NERD_tree.zip (用法:解壓出三個文件夾放到Vim安裝目錄中的vimfiles文件夾中,合併同名文件夾。目錄樹開關快捷鍵:F10) 字體