今天一時興起想要裝個Gvim來打代碼,但是發現網上的配置教程幾乎都是一字不差的複製粘貼而且又是年代久遠,裏面那些www.vim.org的文件都下不了(好像因爲現在要翻牆了的緣故,幾年前貌似不用),所以找齊所需的文件還是比較麻煩的,而且裏面有一些地方講得並不是十分的清楚,所以配置弄了一整天,就發這篇博文來詳細介紹一下怎麼配置Gvim跟大家分享一下。
本文所用到的所有文件下載地址:http://download.csdn.net/detail/acelove40/8654713
環境:windows7 旗艦版
1、安裝Gvim,運行gvim74.3336883054.exe進行安裝。
2、安裝中文幫助,運行vimcdoc-1.9.0-setup.exe,選擇Vim的安裝路徑(我是安裝在C盤你們按自己的安裝路徑選擇),然後就可以了。
安裝完後,gvim菜單中文出現亂碼,在_vimrcset文件中增加:
" 配置多語言環境,解決中文亂碼問題
if has("multi_byte")
" UTF-8 編碼
set encoding=utf-8
set termencoding=utf-8
set formatoptions+=mM
set fencs=utf-8,gbk
if v:lang =~? '^/(zh/)/|/(ja/)/|/(ko/)'
set ambiwidth=double
endif
if has("win32")
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
language messages zh_CN.utf-8
endif
else
echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
endif
輸入:help(冒號是要輸入的),顯示中文幫助,說明安裝成功:
3、設置語法高亮
編輯安裝目錄下的_vimrc文件(例如:我的在C:\Program Files (x86)\Vim)
加入以下內容:
set nu!
colorscheme desert
syntax enable
syntax on
再打開gvim,打開一個源代碼文件:
這些設置使得gvim可以顯示行號,並使用了desert配色方案,而且打開了語法高亮功能(用不同顏色顯示註釋、關鍵字、字符串等)。
我們還可以讓函數名也高亮起來,
這裏對C、C++的代碼進行配置:在C:\ProgramFiles (x86)\Vim\vim74\syntax下找到 c.vim 和 cpp.vim,分別添加以下內容:
syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2
syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1
hi cFunction gui=NONE guifg=#B5A1FF
重新打開gvim,效果如下:
4、程序中跳轉
將ctags.exe複製到C:\ProgramFiles (x86)\Vim\vim74下,並編輯_vimrc文件,添加以下內容:
set tags=tags;
set autochdir
然後將C:\ProgramFiles (x86)\Vim\vim74加到環境變量的path中。
具體做法是打開我的電腦,點擊系統屬性
再點擊高級系統設置
點擊環境變量
在用戶變量裏找到PATH,點擊編輯
將路徑寫在變量值裏,兩個路徑間用分號隔開
在需要查看的源代碼目錄下執行命令ctags -R(也可以在打開你要編輯的文件後點);然後再用gvim打開源代碼文件:
按住“CTRL”鍵,點擊對應的函數名或“CTRL+]”,會自動跳轉到函數的定義部分,“CTRL+T”則返回;
5、源代碼分析工具
將taglist_45.zip解壓,解壓後包含一個doc文件夾和一個plugin文件夾,將其中內容分別複製到C:\Program Files (x86)\Vim\vim74下的doc及plugin中。
在_vimrc文件中加入以下內容:
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
用gvim打開代碼文件(已生成過tags文件),輸入:Tlist,TagList窗口即出現在左側。再輸入:
:Tlist,左側欄消失;左側欄列出了當前文件中的所有宏, 全局變量, 函數名等, 在查看代碼時用這個窗口總攬全局, 切換位置相當方便
6、文件瀏覽組件WinManager
將winmanager.zip解壓和拷貝,解壓後包含一個doc文件夾和一個plugin文件夾,將其中內容分別複製到C:\Program Files (x86)\Vim\vim74下的doc及plugin中
在_vimrc文件中加入以下內容:
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
用gvim打開代碼文件,normal狀態下輸入命令"wm",窗口如下:
左上角是瀏覽文件的窗口,左下角的是TagList窗口;
7、多文檔編輯
解壓後將minibufexpl.vim複製到C:\Program Files (x86)\Vim\vim74\plugin,在_vimrc中添加:
let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplMapWindowsNavVim=1
let g:miniBufExplMapWindowNavArrows=1
用GVIM打開多個源代碼文件後,如圖:
ctrl+Tab,切換到前一個buffer,並在當前窗口打開文件;
ctrl+shift+Tab,切換到後一個buffer,並在當前窗口打開文件;
ctrl+箭頭鍵,可以切換到上下左右窗口中;
ctrl+h,j,k,l,切換到上下左右的窗口中。
解壓後把grep.vim文件拷貝到C:\Program Files (x86)\Vim\vim74\plugin,在_vimrc中添加:
nnoremap <silent> <F3> :Grep<CR>
由於windows是不自帶grep的,所以壓縮包中有提供,運行grep-2.5.4-setup.exe就能進行安裝,安裝後在環境變量中增加grep.exe的路徑;
用gvim打開一個源代碼文件,光標選擇需要查找的內容,按F3,確定要查找的內容和搜索範圍,gvim會在彈出的QuickFix窗口中列出所有符合條件的搜索結果
9、頭文件和c/c++文件的快速切換
將a.vim複製到C:\Program Files (x86)\Vim\vim74\plugin,在_vimrc中添加:
nnoremap <silent> <F12> :A<CR>
用gvim打開源碼文件後,按F12即可以在c/h文件中切換,也可以通過輸入:A實現。
10、高亮書籤
將visualmark.vim複製到C:\Program Files (x86)\Vim\vim74\plugin。
用gvim打開源碼文件,將光標定位在需要添加書籤的地方,按下ctrl+F2,即添加了書籤。
使用F2在書籤之間正向切換,shift+F2反向切換。
11、Python代碼補全
解壓pydiction-1.2.1.rar後,將裏面的python_pydiction.vim文件複製到C:\Program Files (x86)\Vim\vimfiles\ftplugin
將complete-dict 和 pydiction.py複製到C:\Program Files (x86)\Vim\vimfiles\ftplugin\pydiction
在_vimrc文件中增加配置如下:
filetype plugin on “啓用filetype插件
let g:pydiction_location = 'C:\Program Files (x86)\Vim\vimfiles\ftplugin\pydiction\complete-dict'
let g:pydiction_menu_height = 20 ”設置彈出菜單的高度,默認是15
用gvim打開一個py文件,輸入row+[tab],就可以看到自動補全的代碼選項了
12、python編譯
要編譯python首先要在電腦中安裝python,運行python-2.7.8.msi進行安裝。
解壓VimPdb.tar,解壓後拷貝VimPdb.py,VimPdb.vim到C:\Program Files (x86)\Vim\vimfiles\plugin即可。
用vim代開python代碼文件,按F5運行,然後按F2設置斷點,在運行到斷點後可以用按F12可以查看Stack Trace,F3查看變量和參數值。
不過這種方法使用了一下,經常會死掉,不知道爲什麼,所以在網上找到了另外一種方法:
在_vimrc增加
python << EOF import time import vim def SetBreakpoint(): nLine = int( vim.eval( 'line(".")')) strLine = vim.current.line i = 0 strWhite = "" while strLine[i] == ' ' or strLine[i] == "\t": i += 1 strWhite += strLine[i] vim.current.buffer.append( "%(space)spdb.set_trace() %(mark)s Breakpoint %(mark)s" % {'space':strWhite, 'mark': '#' * 30}, nLine - 1) for strLine in vim.current.buffer: if strLine == "import pdb": break else: vim.current.buffer.append( 'import pdb', 0) vim.command( 'normal j1') break vim.command( 'map <C-M> :py SetBreakpoint()<cr>') def RemoveBreakpoints(): nCurrentLine = int( vim.eval( 'line(".")')) nLines = [] nLine = 1 for strLine in vim.current.buffer: if strLine == 'import pdb' or strLine.lstrip()[:15] == 'pdb.set_trace()': nLines.append( nLine) nLine += 1 nLines.reverse() for nLine in nLines: vim.command( 'normal %dG' % nLine) vim.command( 'normal dd') if nLine < nCurrentLine: nCurrentLine -= 1 vim.command( 'normal %dG' % nCurrentLine) vim.command( 'map <C-U> :py RemoveBreakpoints()<cr>') vim.command( 'map <C-D> :!python %<cr>') EOF
然後在要調試的代碼裏面用ctrl-M設斷點
ctrl-D運行
13、python代碼檢查
解壓縮pyflakes.rar後把python文件夾複製到C:\Program Files (x86)\Vim\vimfiles\ftplugin目錄中,打開一個有問題的python源代碼文件,執行命令:cc,即可進行代碼檢查: