下載安裝Python。
從Vim的網站下載vim,建議下Self-installing executable的版本。
編輯vim的設定檔_vimrc
拷貝vimrc_example裡面的東東到_vimrc
去掉_vimrc裡面的source $VIMRUNTIME/vimrc_example.vim
設定中文支援
" 設定編碼自動識別, 中文引號顯示
"set fileencodings=utf-8,cp936,big5,euc-jp,euc-kr,latin1,ucs-bom
set fileencodings=utf-8,gbk
set ambiwidth=double
設定ColorScheme,我選擇的是desert,你可以在GVim的Edit-->Color Scheme看到其他的Color Scheme。
"ColorScheme
colorscheme desert
設定tab插入空格,縮排,刪除鍵刪除縮排,頁面文字寬度
" 允許退格鍵刪除和tab操作
set smartindent
set smarttab
set expandtab
set tabstop=4
set softtabstop=4
set shiftwidth=4
set backspace=2
set textwidth=79
啟用滑鼠,啟用行號
" 啟用滑鼠
set mouse=a
" 啟用行號
set nu
完成以上步驟後用GVim開啟Python代碼的樣子。
啟用omni-completion的代碼補全功能 ,這個系列的組件是隨著Vim一起安裝好的,我順便把Ruby等其他語言的支援也加上了。現在按Ctrl-X,Ctrl-O可以補全代碼
如下修改_vimrc
代碼
"自動補全
filetype plugin indent on
set completeopt=longest,menu
"自動補全命令時候使用菜單式匹配列表
set wildmenu
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType java set omnifunc=javacomplete#Complet
omni-completion實現代碼補全的效果
omni-completion可以實現部分的代碼補全功能,但是不是很全,所以我們啟用pydiction,更豐富的的代碼補全功能,按tab補全代碼。
下載pydiction,解壓後有4個檔案,拷貝python_pydiction.vim和complete-dict到ftplugin目錄,修改_vimrc
"Pydiction
let g:pydiction_location = 'C:\Program Files\Vim\vim73\ftplugin\complete-dict
現在按Tab鍵可以實現代碼補全,
下面我們需要分析原始碼的工具Ctags,從網站下載For Windows版本的Ctags,解壓縮後拷貝ctags.exe到某處,確保windows的path包含這個目錄。
開啟原始碼檔案,點擊GVim上的buildtags按鈕。或者在控制台中到你放源碼的目錄手動執行ctags -R命令。我們可以發現在目前的目錄下產生了tags檔案。這個就是我們需要的。我們可以在方法上按Crtl+],Vim會幫你找到方法定義的地方。
下面我們需要使用這個檔案查看原始碼。我們需要用到另外一個外掛程式TagList,配合Ctags可以高效的查看原始碼。下載TagList解壓縮後是doc和plugin和兩個目錄,把這兩個目錄拷貝到你的Vim安裝目錄(我的路徑是C:\Program Files\Vim\vim73),覆蓋原目錄(不用擔心這樣覆蓋不會影響已存在的東西),修改_vimrc如下
"TagList
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
我們需要制定tags目錄給Vim,在Vim中執行命令:set tags=你的代碼所在的路徑\tags,如果你一直使用同一個代碼路徑可以把他寫死在_vimrc中,例如My Code在
D:\VimTest配置如下
"tags
set tags=D:\VimTest\tags
然後在Vim中執行:Tlist就可以開啟TagList的視窗了,如左邊的視窗,試著在方法上點擊,可以發現右側的游標會自動跳到你點中的方法。
下面我們添加的是檔案瀏覽的功能,下載WinManager ,加壓縮後有三個檔案,放到plugin目錄裡。配置如下可以同時顯示FileExplorer和TagList
"WinManager
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
下面我們輸入wm命令就可以看到了,左上是FileExplorer,左下是TagList
啟用Cscope ,更進階的分析原始碼,支援反向尋找
下載windows下的可用版本http://sourceforge.net/projects/mslk/,解壓縮後拷貝所有檔案到windows的path指向到的某個目錄。
下載cscope_maps.vim,放到Vim的plugin目錄。
修改_vimrc,讓尋找結果顯示在quickfix視窗而不是主視窗。
"cscope show in quickfix
set cscopequickfix=s-,c-,d-,i-,t-,e-
好了,配置完成,下面我們看看怎麼用。在vim中輸入:help if_cscop.txt可以看到關於Cscope的協助。
看完文檔,我們可以在vim中輸入命令:cs find c foo用來尋找foo方法在哪裡被調用過。
cscope_maps.vim映射了一些鍵盤的快速鍵,我們可以快捷的使用尋找功能。
我比較喜歡使用Ctrl+\,讓游標停留在你想尋找的內容,然後輸入Ctrl+\後迅速的輸入c,就可以在quickfix表單看到尋找的結果。如果結果有多條你可以輸入命令:cw展開quickfix表單。(這個快捷操作第一次使用可能會有些彆扭,多試幾遍就好了)
下面是我的一個尋找結果
啟用MiniBufExplorer,管理vim的buffer(緩衝區),快速的在多個同時編輯的檔案間切換。
編輯_vimrc如下
"MiniBufExplorer
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
配置好後開啟多個檔案MiniBufExplorer視窗就出現了。點擊上面的檔案名稱可以在不同的檔案間快速切換。
啟用Grep,在工程中尋找
Grep是linux中命令,如果你不熟悉可以看Grep的文檔。
下載安裝Grep for windows
下載Vim的Grep外掛程式,grep.vim放在plugin目錄
配置_vimrc,設定F3為快速鍵
"Grep
nnoremap <silent> <F3> :Grep<CR>
把游標放在你需要搜尋的內容,按下F3,可以看到Search for pattern: xxx,按下斷行符號,出現Search in files,輸入*.py,只尋找python的原始碼檔案,按下斷行符號就可以看到搜尋的結果了。見
啟用VimPdb,可以調試Python程式。
下載VimPdb,解壓後拷貝VimPdb.py,VimPdb.vim到plugin即可。
用vim代開python代碼檔案,按F5運行,然後按F2設定斷點,在運行到斷點後可以用按F12可以查看Stack Trace,F3查看變數和參數值。
更進階的使用可以查看文檔。
啟用ropevim ,重構Python程式
下載rope,ropemode,ropevim,分別解壓縮,開啟控制台,cd到解壓縮目錄,執行python setup.py install安裝。
然後拷貝ropevim.vim檔案到plugin目錄。這樣就安裝好了。我們試試重構一個類名,游標放在類名上,按Ctrl-c 然後連按兩下r。
可以看到quickfix表單要求你輸入New name:,輸入新的名稱斷行符號,再斷行符號,重構就完成了。如
Python代碼檢查
在Vim的ftplugin目錄下建立一個python目錄。
下載pyflakes,解壓縮後把pyflakes.vim檔案和pyflakes目錄拷貝套ftplugin\python目錄中。
開啟一個有問題的python原始碼檔案,執行命令:cc,即可進行代碼檢查,如中找到了兩處錯誤。
好了終於寫完了,真累,最後放個大圖,顯示下整體效果。
參考文檔:
手把手教你把Vim改裝成一個IDE編程環境(圖文)
VIM as Python IDE
參考眾多,不一一列舉了。