轉自:http://www.cnblogs.com/xiekeli/archive/2012/08/13/2637176.htmlphp
加班的時候,聽同事提到gvim在windows下的使用,而後忽然想起來幾年前實習的時候,在實習公司也用的GVIM,可是想不起來爲何用這個工具了,因此就找了篇博文,看了看,而後在本身的電腦上從新配了下,過程以下。html
環境:Windows7 旗艦版python
一、安裝Gvim7.3 : 下載地址http://www.vim.org/download.php#pc。vim
二、安裝中文幫助:vimcdoc-1.8.0-setup.exe 地址http://vimcdoc.sourceforge.net/windows
會自動識別gvim的安裝路徑,bash
安裝完後,gvim菜單中文出現亂碼,在_vimrcset文件中增長:app
1 " 配置多語言環境,解決中文亂碼問題 2 3 if has("multi_byte") 4 " UTF-8 編碼 5 set encoding=utf-8 6 set termencoding=utf-8 7 set formatoptions+=mM 8 set fencs=utf-8,gbk 9 if v:lang =~? '^/(zh/)/|/(ja/)/|/(ko/)' 10 set ambiwidth=double 11 endif 12 if has("win32") 13 source $VIMRUNTIME/delmenu.vim 14 source $VIMRUNTIME/menu.vim 15 language messages zh_CN.utf-8 16 endif 17 else 18 echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte" 19 endif
輸入:help,顯示中文幫助,說明安裝成功:函數
三、設置語法高亮工具
編輯安裝目錄下的_vimrc文件(例如:個人在D:\Program Files\Vim)ui
加入如下內容:
1 set nu! 2 colorscheme desert 3 syntax enable 4 syntax on 5 set nobackup
再打開gvim,打開一個源代碼文件:
這些設置使得gvim能夠顯示行號,並使用了desert配色方案,並且打開了語法高亮功能(用不一樣顏色顯示註釋、關鍵字、字符串等)。
咱們還可讓函數名也高亮起來,
這裏對C、C++的代碼進行配置:在D:\Program Files\Vim\vim73\syntax下找到 c.vim 和 cpp.vim,分別添加如下內容:
1 syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2 2 syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1 3 hi cFunction gui=NONE guifg=#B5A1FF
從新打開gvim,效果以下:
四、安裝Ctags
下載地址:http://ctags.sourceforge.net/,在解壓後將文件夾中的ctags.exe複製到D:\ProgramFiles\Vim\vim73下,並編輯_vimrc文件,添加如下內容:
1 set tags=tags; 2 set autochdir
而後將D:\ProgramFiles\Vim\vim73加到環境變量的path中。在須要查看的源代碼目錄下執行命令ctags -R(經過cmd或者其餘bash手段);而後再用gvim打開源代碼文件:
按住「CTRL」鍵,點擊對應的函數名或「CTRL+]」,會自動跳轉到函數的定義部分,「CTRL+T」則返回;
五、源代碼分析工具 taglist
下載地址:http://vim.sourceforge.net/scripts/script.php?script_id=273,解壓後包含一個doc文件夾和一個plugin文件夾,將其中內容分別複製到d:\Program Files\Vim\vim73下的doc及plugin中。
在_vimrc文件中加入如下內容:
1 let Tlist_Show_One_File=1 2 let Tlist_Exit_OnlyWindow=1
用gvim打開代碼文件(已生成過tags文件),輸入:Tlist,TagList窗口即出如今左側。再輸入:
:Tlist,左側欄消失;左側欄列出了當前文件中的全部宏, 全局變量, 函數名等, 在查看代碼時用這個窗口總攬全局, 切換位置至關方便
設置自動Taglist自動開啓:
1 let Tlist_Auto_Open=1
六、文件瀏覽組件 WinManager
winmanager.zip 地址http://www.vim.org/scripts/download_script.php?src_id=754
將winmanager.zip解壓和拷貝,解壓後包含一個doc文件夾和一個plugin文件夾,將其中內容分別複製到d:\Program Files\Vim\vim73下的doc及plugin中
在_vimrc文件中加入如下內容:
1 let g:winManagerWindowLayout='FileExplorer|TagList' 2 nmap <silent> <F8> :WMToggle<cr>
設置自動打開Winmanager:
1 let g:AutoOpenWinManager = 1
同時在winmanager.vim中加入一段話:
"set auto open Winmanager if g:AutoOpenWinManager autocmd VimEnter * nested call s:StartWindowsManager()|1wincmd w endif
注:若是設置Winmanager自動開,那麼Taglist自動open變量須要關閉,不然會出現兩個導航欄。
用gvim打開代碼文件,normal狀態下按下F8能夠打開關閉, 窗口以下:
左上角是winmanager 瀏覽文件的窗口,左下角的是TagList窗口;
七、多文檔編輯
minibufexpl.vim 地址http://www.vim.org/scripts/download_script.php?src_id=3640
解壓後將將minibufexpl.vim複製到d:\Program Files\Vim\vim73\plugin,在_vimrc中添加:
1 let g:miniBufExplMapCTabSwitchBufs=1 2 let g:miniBufExplMapWindowsNavVim=1 3 let g:miniBufExplMapWindowNavArrows=1
用GVIM :e打開多個源代碼文件後,如圖:
ctrl+Tab,切換到前一個buffer,並在當前窗口打開文件;
ctrl+shift+Tab,切換到後一個buffer,並在當前窗口打開文件;
ctrl+箭頭鍵,能夠切換到上下左右窗口中;
ctrl+h,j,k,l,切換到上下左右的窗口中。
這樣能夠完成多個標籤頁的切換
------------------------------------------------------------------------本人配置到這-----------------------------------------------------------------------
八、在工程中快速查找
grep.vim 地址http://www.vim.org/scripts/download_script.php?src_id=7645
解壓後把grep.vim文件拷貝到d:\Program Files\Vim\vim73\plugin,在_vimrc中添加:
nnoremap <silent> <F3> :Grep<CR>
由於windows下是不帶grep的,須要下載Grep for Windowshttp://gnuwin32.sourceforge.net/packages/grep.htm
下載後在環境變量中增長grep的路徑;
用gvim打開一個源代碼文件,光標選擇須要查找的內容,按F3,肯定要查找的內容和搜索範圍,gvim會在彈出的QuickFix窗口中列出全部符合條件的搜索結果
九、h\c切換(針對C、C++)
下載插件:a.vim 地址http://www.vim.org/scripts/download_script.php?src_id=7218
將a.vim複製到d:\Program Files\Vim\vim73\plugin,在_vimrc中添加:
nnoremap <silent> <F12> :A<CR>
用gvim打開源碼文件後,按F12便可以在c/h文件中切換,也能夠經過輸入:A實現。
十、高亮書籤
下載插件:visualmark.vim 地址http://www.vim.org/scripts/download_script.php?src_id=4700
將visualmark.vim複製到d:\Program Files\Vim\vim73\plugin。
用gvim打開源碼文件,將光標定位在須要添加書籤的地方,按下ctrl+F2,即添加了書籤。
使用F2在書籤之間正向切換,shift+F2反向切換。
十一、Python代碼補全
解壓後,將裏面的python_pydiction.vim文件複製到D:\Program Files\Vim\vimfiles\ftplugin
將complete-dict 和 pydiction.py複製到D:\Program Files\Vim\vimfiles\ftplugin\pydiction
在_vimrc文件中增長配置以下:
filetype plugin on 「啓用filetype插件
let g:pydiction_location = 'D:\Program Files\Vim\vimfiles\ftplugin\pydiction\complete-dict'
let g:pydiction_menu_height = 20 」設置彈出菜單的高度,默認是15
用gvim打開一個py文件,輸入row+[tab],就能夠看到自動補全的代碼選項了
十二、python編譯
下載VimPdb,解壓後拷貝VimPdb.py,VimPdb.vim到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運行
1三、Python代碼檢查
下載pyflakes,解壓縮後把pyflakes.vim文件和pyflakes目錄拷貝套ftplugin\python目錄中,打開一個有問題的python源代碼文件,執行命令:cc,便可進行代碼檢查: