2013-04-08 34 views
0

所以我已經切換到VIM所有我的編碼。我使用PHPStorm來開發我的Magento。使用Magento進行開發並使用IDE的一件事情是,他們使用Factory Design模式來使用類。是否有解決方案代碼完成工廠設計模式在vim

例如加載下面的類

Mage_Catalog_Model_Product

你將與

法師:: getModel( 'CATAL /產品')調用;

我正在尋找一種方式,可以說

Mage::getModel('catal/product')-> 

和代碼完成給我從Mage_Catalog_Model_Product

方法列表在過去的兩年來人們一直在推動在以下PHPStorm和該IDE的一個解決方案已經開發出來了。PHPStorm提出了一個解決方案,它允許你創建一個PHPStorm將用來給你代碼完成的類的映射。

我想知道VIM有沒有一種方法可以使用類似於https://gist.github.com/colinmollenhour/937195的映射,使用當前的代碼完成插件,或者可能有一些技巧來創建我自己的插件來提供這種類型的代碼完成。我一直在看幾篇文章,看起來應該是可能的,但我從來沒有爲VIM編過任何代碼。

回答

1

你的問題有點難以遵循。如果您有一個例如班級名稱並且您想要提供完成,則可以實施自定義插入模式完成。一個簡單的例子見:help E840;您可以通過system()從外部命令中讀取完成列表。

要插入的骨架代碼的量的動態佔位符,片段像內置:abbreviate類固醇,通常與參數插入,鏡像和在其內部的多個停止。第一個非常着名的Vim插件之一是snipMate(受TextMate編輯的啓發);不幸的是,它不再被維護;儘管有[fork] [https://github.com/garbas/vim-snipmate]。一個現代的替代品(需要Python)是UltiSnips。還有更多,請參見this list on the Vim Tips Wiki

+0

我編輯了一下我的問題,這有助於澄清事情嗎? – 2013-04-08 14:56:16

+0

我有snipMate,這有助於只是一般的代碼塊,但不能從代碼完成類的可能方法。 – 2013-04-08 14:57:42

+0

我沒有PHP背景,並且有很多問題文字要消化。無論如何,那麼自定義完成就是要走的路。你必須編寫一些Vimscript,但現有的實現。 grep'$ VIMRUNTIME/ftplugin/*。vim'用於'omnifunc'。 – 2013-04-08 15:15:18