1

所以我所有的编码都切换到了 VIM。我曾经使用 PHPStorm 进行 Magento 开发。在 Magento 和使用 IDE 中使开发变得困难的一件事是他们使用工厂设计模式来使用类。

例如加载下面的类

Mage_Catalog_Model_Product

你会打电话给

Mage::getModel('catal/product');

我正在寻找一种能够说

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

代码完成给了我一个来自 Mage_Catalog_Model_Product 的方法列表

在过去的两年里,人们一直在推动 PHPStorm 中的以下内容,并且已经为PHP 链接中工厂设计模式的 IDE 通用支持开发了一个解决方案(例如 Magento、Doctrine、Kohana 等)。

PHPStorm 提出了一个解决方案,它允许您创建一个类映射,PHPStorm 将使用该映射来完成代码。

我想知道 VIM 有没有一种方法可以使用与https://gist.github.com/colinmollenhour/937195类似的映射,使用当前的代码完成插件或者创建我自己的插件以提供这种类型的一些提示代码完成。我一直在看几篇文章,似乎应该可以,但我从未为 VIM 编写过任何代码。

4

1 回答 1

1

你的问题有点难以理解。如果你有一个例如类名的列表并且你想提供完成,你可以实现一个自定义插入模式完成。看:help E840一个简单的例子;您可以通过外部命令读取完成列表system()

为了插入大量带有动态占位符的骨架代码,代码片段就像内置在:abbreviate类固醇上,通常在其中包含参数插入、镜像和多个停止。snipMate(灵感来自TextMate编辑器)是最早的、非常著名(并且仍然被广泛使用)的 Vim 插件之一;不幸的是,它不再维护了;虽然有 [a fork] [https://github.com/garbas/vim-snipmate]。一个现代替代方案(尽管需要 Python)是UltiSnips。还有更多,请参阅Vim Tips Wiki 上的此列表

于 2013-04-08T13:38:02.513 回答