2009年10月4日 星期日

cpan.vim now supports ctags search

前陣子參加 YAPC::Asia,看了 imakado demo 的 emacs plugin - cpan.el 以及 perl-completion.el ,所以我於會後也寫了一個類似的 vim plugin。screencast 可參考此處 (http://c9s.blogspot.com/2009/09/cpanvim.html)

寫著寫著覺得可以開發的功能實在很多,於是除了讓 cpan.vim 可以迅速的搜尋 CPAN 模組之外,也支援其他種搜尋模式,如只搜尋 ./lib/ 或是 @INC 或是從 cpan source list 上搜尋。

除此之外另外對其他非 Perl 使用者會比較實用的是 ctags search 的功能,要使用此功能必須先安裝 Exuberant ctags ,來利用 Exuberant Ctags 對各種語言的程式碼來產生 ctags file,目前 Exuberant Ctags 支援 41 多種語言

手動產生的方法如下:

$ ctags -R foo.c bar.c /path/to/source/

這樣便會產生檔案名稱為 tags 的 taglist 檔案於目前目錄下。

這是原始的作法。

利用 cpan.vim 則只需要使用快捷鍵 Ctrl-C,Ctrl-T 即可開啟 Ctags Search Window,如果找不到 tags 檔案,便會詢問你要產生 ctags 的來源路徑 (支援自動補完路徑 path completion ),然後自動為你產生。

鍵入 Pattern 後會自動替你搜尋相關對應的標籤 (tag) ,可用 Ctrl-N , Ctrl-P 來選擇結果,Ctrl-A, Ctrl-E 來跳至行頭、行尾。

Enter 則會直接進入該標籤 (tag) , 按下 t 則會將標籤開於新分頁。若該標籤 (tag) 對應到多個檔案,則會跳出選擇清單,只需鍵入編號進入即可。

目前唯一的缺點就是當 ctags 檔案非常非常大的時候會有點慢。

詳細的使用說明於 README 檔案內。不過我目前還沒有上傳新的版本至 vim.org,我太懶了。(其實是 vim.org 做的實在很簡陋 , sucks)

各位使用從 github checkout 最新版本出來即可。

Github: http://github.com/c9s/cpan.vim

或是直接下 git 命令:

$ git clone git://github.com/c9s/cpan.vim.git

安裝則相當簡易,在 Plugin 目錄下輸入一行命令即可:

$ make install

其他相關問題歡迎在此篇 Blog 下發問。謝謝。