Env:Gvim開發環境配置筆記--Windows篇

轉自: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#pcvim

二、安裝中文幫助: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,顯示中文幫助,說明安裝成功:函數

Image

三、設置語法高亮工具

編輯安裝目錄下的_vimrc文件(例如:個人在D:\Program Files\Vim)ui

     加入如下內容:

1 set nu!
2 colorscheme desert 
3 syntax enable 
4 syntax on
5 set nobackup

再打開gvim,打開一個源代碼文件:

Image(1)

這些設置使得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,效果以下:

Image(2)

 

四、安裝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打開源代碼文件:

Image(3)

 

按住「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

Image(4)

 

用gvim打開代碼文件(已生成過tags文件),輸入:Tlist,TagList窗口即出如今左側。再輸入:

:Tlist,左側欄消失;左側欄列出了當前文件中的全部宏,  全局變量,  函數名等,  在查看代碼時用這個窗口總攬全局,  切換位置至關方便

設置自動Taglist自動開啓

1 let Tlist_Auto_Open=1 

Image(5)

 

六、文件瀏覽組件 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能夠打開關閉, 窗口以下:

Image(6)

左上角是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打開多個源代碼文件後,如圖:

Image(7)

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窗口中列出全部符合條件的搜索結果

Image(8)

九、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,即添加了書籤。

Image(9)

使用F2在書籤之間正向切換,shift+F2反向切換。

十一、Python代碼補全

下載插件pydiction-1.2.zip

解壓後,將裏面的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],就能夠看到自動補全的代碼選項了

Image(10)

十二、python編譯

下載VimPdb,解壓後拷貝VimPdb.py,VimPdb.vim到plugin便可。

用vim代開python代碼文件,按F5運行,而後按F2設置斷點,在運行到斷點後能夠用按F12能夠查看Stack Trace,F3查看變量和參數值。

Image(11)

不過這種方法使用了一下,常常會死掉,不知道爲何,因此在網上找到了另一種方法:

在_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,便可進行代碼檢查:

Image(12)

相關文章
相關標籤/搜索