所以我已经切换到VIM进行所有编码。我使用PHPStorm进行Magento开发。在Magento中使用IDE进行开发很困难的一个原因是他们使用工厂设计模式来使用类。
例如,加载以下类
Mage_Catalog_Model_Product
你会打电话给
法师:: getModel( 'CATAL /产品');
我正在寻找一种能够说出
的方法Mage::getModel('catal/product')->
代码完成为我提供了Mage_Catalog_Model_Product
的方法列表在过去两年中,人们一直在推动PHPStorm中的以下内容,并为该IDE开发了一个解决方案Generic support for factory design pattern in PHP chaining (e.g. Magento, Doctrine, Kohana, etc..)
PHPStorm提出了一个解决方案,它允许您创建PHPStorm将用于为您完成代码的类映射。
我想知道VIM是否有一种方法可以使用与https://gist.github.com/colinmollenhour/937195类似的映射,使用当前的Code Completion插件,或者创建我自己的插件以提供此类代码完成的一些提示。我一直在看几篇文章,似乎它应该是可能的,但我从来没有为VIM编写过任何东西。
答案 0 :(得分:1)
你的问题有点难以理解。如果您有一个例如类名并且您希望提供完成,您可以实现自定义插入模式完成。有关简单示例,请参阅:help E840
;您可以通过system()
从外部命令中读取完成列表。
要使用动态占位符插入一定数量的骨架代码,代码段就像内置的类固醇:abbreviate
一样,通常带有参数插入,镜像和内部多个停靠点。第一个非常着名(并且仍然广泛使用)的Vim插件之一是snipMate(受 TextMate 编辑器的启发);不幸的是,它不再维持;虽然有[叉] [https://github.com/garbas/vim-snipmate]。现代替代方案(虽然需要Python)是UltiSnips。还有更多内容,请参阅this list on the Vim Tips Wiki。