剛開始用vim寫python的時候,感覺很不方便,於是就用了圖形界面的Pycharm(如果是windows用戶,這個IDE應該是標配),用了壹段時間也沒有覺得有什麽不好,不過,腦子裏總是會想起《程序員修煉之道》中,那句”最好是精通壹種編輯器,並將其用於所有編輯任務。如果不堅持使用壹種編輯器,可能會面臨現代的巴別特大混亂。”所以,我又決定用vim來寫python。
在知乎上有很多vim寫python的插件推薦,不過我感覺很多人回答都不動腦子,這些回答主要有兩個問題:
回答不全面,很多人都只是推薦壹款插件,然後貼個鏈接就完了,如果要想很爽的用vim寫python,可以肯定的是,壹款插件是不夠的
貼上自己的配置,說自己的配置有多爽,然後就不管了。如果是壹個vim新手,是用不著這麽多配置的,如果是壹個vim老手,也不會放棄自己原有的配置,使用別人自定義、認為很爽的個性化配置
所以,這些回答都不是很靠譜。我爭取推薦壹些靠譜的東西,那麽,就開始吧!
1. 壹鍵執行
這個不是插件,而是壹個自定義的vim配置。很多時候我們寫python,都是寫壹些較為簡單的腳本,那麽,這個壹鍵執行的功能就非常實用,我個人感覺最實用的是在寫單元測試的時候,寫完壹個單元測試,都不用退出vim,立即執行就能看到結果。
將下面的配置放到.vimrc文件即可:
"""""""""""""""""""""" "Quickly Run """"""""""""""""""""""
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec "!g++ % -o %<"
exec "!time ./%<"
elseif &filetype == 'cpp'
exec "!g++ % -o %<"
exec "!time ./%<"
elseif &filetype == 'java'
exec "!javac %"
exec "!time java %<"
elseif &filetype == 'sh'
:!time bash % elseif &filetype == 'python'
exec "!time python2.7 %"
elseif &filetype == 'html'
exec "!firefox % &"
elseif &filetype == 'go' " exec "!go build %<"
exec "!time go run %"
elseif &filetype == 'mkd'
exec "!~/.vim/markdown.pl % > %.html &"
exec "!firefox %.html &"
endif
endfunc
2. 代碼補全(snipMate)
代碼補全能夠顯著地減少妳敲鍵的次數,並且將妳從瑣碎的語法中解放出來。說白了,就是幫妳寫代碼!
如果使用snipMate插件,那麽,當妳輸入ifmain以後按tab鍵,將會自動為妳生成下面的代碼:
if __name__ == '__main__':
main()
輸入for,再按tab鍵,生成如下代碼:
for needle in haystack: # code...
代碼補全有兩款插件都比較不錯,可以根據自己的需要進行選擇:
snipMate
xptemplate
3. 語法檢查(Syntastic)syntastic是壹款強大的語法檢查插件,當妳保存源文件時,它就會執行,並提示用戶哪些代碼存在語法錯誤,哪些代碼風格不符合規範,並給出具體的提示。
例如,python代碼風格默認設置為PEP8,即使妳不知道PEP8的風格,只要妳使用syntastic插件,並根據它給出的提示修改,那麽,妳就能寫出完全符合PEP8風格的代碼!
4. 編程提示(jedi-vim)
jedi-vim是基於jedi的自動補全插件,與Syntastic 不同的是,該插件更加智能,更貼切的稱呼是”編程提示”,而不是代碼補全插件。
如下圖所示:
可以說,這個插件是寫vim的標配,並且,真正讓vim寫python變成壹件輕松愉快的事情。
註意: 安裝驚jedi-vim插件,需要在電腦中安裝jedi,根據jedi-vim給出的提示,正常按裝即可。不過我之前遇到壹個問題,在公司的虛擬機裏面,安裝以後不起作用,google了半天沒有成功,最後更新了壹下vim就可以了,希望遇到相同問題的人,能夠看到。
sudo aptitude install vim-gnome vim vim-common vim-tiny
至於調試,難道妳們不是用ipdb的嗎?如果不是,趕緊用用,妳們會喜歡的。