什么是在Emacs中编辑PHP的好设置?

我将在今年夏天为我的工作做一些PHP编辑工作,并且正在寻找一个有效的Emacs设置来编辑它。 我已经在Emacs上投入了大量资金,所以换个编辑器是不值得的。

现在,我有nXhtml模式 ,它提供了一个语法高亮的PHP模式(至less有三种不同的模式),以及MuMaMo用于编辑embedded在HTML中的PHP。 我刚开始分别使用Auto-Complete和Anything编程和一般的Emacs。

我真正想要的是让Emacs真正了解项目的有效方法,而不仅仅是突出显示。 Etags看起来是一个不错的select,但是看起来生成新标签的过程看起来很艰苦和手工(或者至less不可见)。 关于Etags的好处是,它们与Anything和Auto-Complete很好地结合在一起。 其他可能的选项是gtags (虽然我很犹豫要安装非elisp文件,只是为了复杂性), vtags或Semantic ,之前我已经搞混了 ,看起来很复杂,再加上它看起来不像它支持PHP。

另一种select是Imenu ,但它只适用于当前的缓冲区,我希望能够跳转到其他文件中的函数定义(最好使用任何完成名称)。

我将要做的项目并不是那么大(总计大约3万行),所以Etags的开销可能不是什么大问题,但是如果有更好的解决scheme,我宁愿不使用它。

那么你最喜欢的PHP编辑系统是什么?

除了你已经熟悉的function,我build议你以下。

的ETag

我不使用ETags,但有一个问题已经如此以编程方式创build/更新与emacs的标签文件 。 虽然没有很好的答案,但它可能是一个很好的切入点。

debugging

Flymake是一个快速语法检查的模式。 它也支持PHP。 当您input时,它立即提示语法错误。 Emacs 23附带的Flymake版本包含PHP支持。 如果您有以前的版本,请查看Sacha Chua在Emacs和PHP上的文章:使用Flymake进行即时语法检查

另一个有用的软件包是Geben ,它允许你交互地debugging你的脚本。 对于PHP,您可以使用XDebug。 有一个关于如何做的详细教程,请参阅使用geben在emacs中debuggingphp

文档查找

PHP模式有一个很好的function,可以在您的Web浏览器( Mx php-search-documentationCc Cf )中查找PHP手册中的函数定义。 您可以将它与Emacs-W3M结合起来,在不离开Emacs的情况下获得相关的手册页。

web-model.el(在web-mode.org上可用 )处理embedded在html文档中的很好的php块。 这个主要模式也会突出显示js和css部分。

作为ETags的替代品,可以考虑GNU Global,即“GTags”。 Global对于查找标签表很聪明,而且更新速度相当快。 Emacs-fu有一个不错的post,关于这个动作 。

顺便说一句,如果你使用Windows Emacs版本的GNU Global的Windows端口,使用DJGPP(“DOS”)版本。 MinGW(“Win32”)版本似乎有path名称的问题。