好的。內文如下: ------------------------- screencast: http://www.youtube.com/watch?v=Y4yz0H8W-Ts
昨天在往台南的客運上 hack 了一個這樣的東西,可以針對 $self, $class, Class::Name 這幾種狀況做 completion,目前的 perl-completion 使用 PPI (pure perl parser) 來找出目前 package 繼承的 class 的函式以及能夠依據設定找出第 n 層的 class function (預設是兩層)。 輸入字串至 Class-> 按下 Ctrl-x Ctrl-x 便能開啟 perl-completion window ,在 insert mode 輸入 pattern 時,直接按下 Enter 能夠自動 complete 第一個 item. Ctrl-n , Ctrl-p 可以 上下選擇 completion item, Ctrl-j , Ctrl-k 能夠跳至上一個/下一個 package,ESC 可直接關閉 completion window。 有空在將這個 completion window generalize ,那麼便可以很容易的支援其他 Language。 下一步想做的是 function preview ,由於在 Perl 的 Subroutine 內,我們可以用各種方式取用 Arguments ,所以若要自動 parse function argument 作為 completion 的提示,並不容易。初步的想法 是,可以將一個 function 的最初幾行做預覽。那麼哪怕忘記 function 該怎麼 call ,只需要叫出預覽視窗即可。 目前 perl-completion.vim 還在 github.com/c9s/cpan.vim 內。昨天晚上把所有 perl 相關函式整理 至 autoload/libperl.vim ,以及將各 plugin 切割出來,如 ctags-search.vim , cpan.vim , perl-completion.vim , perl-function-search.vim 等。 試想在這樣的 plugin 開發,未來可以在 Vimana 實做 : 自動建立 vim plugin 框架,自動產生 makefile, dependency check, plugin version check 之類的功能。 目前的 perl-completion.vim 放在 http://github.com/c9s/cpan.vim/ 內。 安裝方式如下: 使用 git 將 repository checkout 出來 $ git clone git://github.com/c9s/cpan.vim.git $ cd cpan.vim $ make install 安裝 cpan.vim 同時有下列幾種功能: perl function search , ctags search , cpan module search , perl-completion 相關文章: http://c9s.blogspot.com/2009/10/cpanvim-now-supports-ctags-search.html http://c9s.blogspot.com/2009/09/cpanvim.html On Oct 18, 2:35 pm, xjdengz <[email protected]> wrote: > blogger不能透过gfw,能不能直接贴出来呀 > > On Sat, Oct 17, 2009 at 11:30:05PM -0700, c9s wrote: > >大家好, > > >昨天實做了 perl-completion 的 vim plugin ,發了一篇文: > > >http://c9s.blogspot.com/2009/10/perl-completion-plugin-for-vim.html > > >歡迎有興趣的朋友一起討論。 :-) --~--~---------~--~----~------------~-------~--~----~ 您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。 要在此论坛发帖,请发电子邮件到 [email protected] 要退订此论坛,请发邮件至 [email protected] 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛 -~----------~----~----~----~------~----~------~--~---
