在Vim初探(四)中介紹了Vim的外掛程式技術,本節將利用這些技術打造一個Python IDE。
1.文法高亮
為了能在Vim中支援Python文法需要用到外掛程式python.vim,該外掛程式預設位於<Vim安裝目錄>/<$VIMRUNTIME>/syntax/下,如果你在該路徑下沒有找到這個外掛程式,需要到python.vim : Enhanced version of the python syntax highlighting script下載。然後為了能讓Vim識別Python文法需要在vimrc中添加:
set filetype=python
au BufNewFile,BufRead *.py,*.pyw setf python
2.縮排
在vimrc中添加如下縮排相關的代碼:
set autoindent " same level indent
set smartindent " next level indent
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
3.項目視圖
像Visual Studio或Eclipse之類的IDE都會提供項目視圖(位於左側或右側),程式員利用該視圖在檔案間或類間跳轉。利用Ctags和外掛程式Tasklist可以在vim中實現此功能。
- 首先下載Exuberant Ctags
- 然後解壓Ctags,並進入解壓後的目錄,利用如下命令編譯安裝Ctags:
./configure && sudo make install
- 通過這種方式,Ctags被安裝在/usr/local/bin下。接下來在vimrc中添加如下命令告訴Vim Ctags的安裝路徑:
let Tlist_Ctags_Cmd='/usr/local/bin/ctags'
- 接著安裝Tasklist外掛程式:下載TaskList.vim,然後把它放入plugin目錄下
- 最後使用命令:TlistToggle開啟taglist視窗,展示了該視窗。
4.MiniBufExplorer
在Visual Studio或Eclipse中你開啟的緩衝會以tab的形式列在視窗的頂端或底部,在Vim中外掛程式MiniBufExplorer來實現此功能。下載
minibufexpl.vim並將其放在plugin目錄下。接著在vimrc中添加如下命令:
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
展示了MiniBufExplorer的使用效果:
5.Omnicompletion
Vim7中添加了對文法提示和自動完成的支援,對於python來說需下載pythoncomplete.vim並將其放在<Vim安裝目錄>/<$VIMRUNTIME>/autoload/目錄下,接著在vimrc中添加如下命令:
filetype plugin on
set ofu=syntaxcomplete#Complete
autocmd FileType python set
omnifunc=pythoncomplete#Complete
autocmd FileType python runtime! autoload/pythoncomplete.vim
最後在編寫代碼時通過ctrl-x ctrl-o來開啟文法提示操作功能表,如所示:
參考文獻
1.http://www.swaroopch.com/notes/Vim
2.http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/
3.http://www.phacks.net/macvim-code-completion-syntax-highlighting-for-python-pyqt4-twisted-on-mac-osx-snow-leopard/
4.http://vim.wikia.com/wiki/Omni_completion