2013年9月22日 星期日

vim plugin 推薦 (For python and java )

之前有提過如何安裝vundle來管理vim的plugin,這邊來推薦我主要使用的一些plugin。
如果您對於vim的plugin安裝有問題,請參考上一篇。如果對於基礎的vim不熟,請參考鳥哥
上一篇已經有提到SnipMateThe-NERD-treetaglist這三個必裝的plugin,所以這邊就不多介紹了,當中的taglist,大家可以改安裝Tagbar,因為我發現taglist對直譯式的語言(如python)支援度不好。

AutoComplPop

AutoComplPop是一個會自動幫你補齊的plugin,當你在輸入電腦路徑或是輸入字時,會自動尋找補齊,有點像google在搜尋時的功能。

EasyMotion

EasyMotion是一個可以快速跳躍到你想要的段落plugin,EasyMotion就會把第一個字取代成英文a-z,你可以輸入英文,選擇你要跳躍的地方。

因為內建的熱鍵會跟其他衝突,所以我先在.vimrc修改熱鍵

let g:EasyMotion_leader_key = '\'

啟動方法是先按兩次熱鍵,接著按下 w,就會啟動EasyMotion
網路上很多人推薦,不過我很少用他,還是寫給需要的人看



這算是個比較小品的plugin,做的事很簡單,因為寫程式常常需要用當括號,所以當你輸入左半邊的括號,譬如{,他會自動幫你補成{},雖然簡單,但很實用,可以減少bug形成。


Syntastic會自動幫你檢查語法錯誤,目前支援大部分的主流語言(php、java等),安裝完後要手動打開,在.vimrc中加入

 let g:syntastic_check_on_open = 1 

然後寫完程式之後按儲存(:w),就會顯示出錯誤的地方,底下會顯示錯誤的原因


一個會像eclipse一樣,顯示函式庫的plugin,安裝完後要在.vimrc中加入

 setlocal omnifunc=javacomplete#Complete

:上面的#Complete不是註解,請不要亂刪,不然會像我一樣,花好幾天裝不起來
預設是按熱鍵補齊,不過如果想要像eclipse一樣,在關鍵字後加入.就會顯示,可以加入這行





python用的補齊plugin,預設補齊鍵是TAB,因為熱鍵會跟SnipMate相衝,所以建議用Ctrl+n來補齊,裝好之後需要在.vimrc中加入路徑

 let g:pydiction_location = '/home/ben/.vim/bundle/Pydiction/complete-dict' 

:上面的路徑每個人都不太一樣,要注意一下

匯入Django步驟如下(參考來源)

Django是python的web framework,但pydction預設是不支援Django,這時候只要把Django匯入進來就好(前題是你python有匯入Django)

cd /usr/local/lib/python2.6/dist-packages
find django -type d > /var/tmp/django_pkgs.sh
vim /var/tmp/django_pkgs.sh

在vim中輸入
:%s!/!.!g
:%s/\n/ /

接著修改django_pkgs.sh
第1行:export DJANGO_SETTINGS_MODULE=settings
第2行:export PYTHONPATH='django project中有setting.py的路徑'
第3行:加入 python ./pydiction.py 看起來會像這樣
python ./pydiction.py django django.contrib django.contrib.redirects ......


跳出vim 執行sh django_pkgs.sh

熱鍵補齊: Ctrl+n




跟Syntastic功能一樣,但只檢查python語法,Syntastic本身也有檢查python的功能,只是我習慣寫python時用這套

有時候需要寫網頁,這個工具可以幫你補齊網頁的標籤
當你輸入html或body之後按,會自動幫你補成對齊的標籤

程式碼折疊
vim本身有支援程式碼折疊,只要在.vimrc中加入

"folding
 set foldenable 
 set foldmethod=syntax 
 set foldcolumn=0 
 nnoremap @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')

就可以使用空白鍵來折疊程式碼


Compile

當寫好程式,需要compile時,常常都要跳出vim蠻麻煩的,所以可以把compile的動作寫入.vimrc,設定熱鍵,以後只要按下F5就可以依照不同的檔案類型去compile,察看結果



這邊只列出我可能會用到的,有需要的人自己再加

其他

有些人可能還會用到SQL語法之類的,可以考慮SQLComplete.vim的plugin,不過我還沒試過,有興趣的可以安裝看看

vim還有很多用途,譬如我有時候會寫英文,可以用vim來做查單字驗證之類的,不過這跟程式比較沒有關,有空再來寫另一篇

感想

我覺得vim很符合computer science一句名言-「smaller is faster」,只需要一個micro kernel,當有需要擴充時,才去動態鏈結模組進來,大家可以先忘掉那肥大的IDE,來試看看輕巧又強大的VIM.

沒有留言:

張貼留言