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

2022-08-30 12:28:46

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

现在,我有nXhtml模式,它提供了一个具有语法突出显示的PHP模式(野外至少有三种不同的模式)以及用于编辑嵌入HTML中的PHP的MuMaMo。我刚刚开始分别使用Auto-CompleteAnything进行编程和一般的Emacs。

我真正想要的是一种有效的方法,让Emacs真正了解这个项目,而不仅仅是突出显示。Etags看起来是一个不错的选择,但看起来生成新标签的过程有点艰巨和手动(或者至少不是不可见的)。Etags的好处是它们与Anything和Auto-Complete很好地集成在一起。其他潜在的选项是gtags(尽管我对安装非elisp文件犹豫不决,只是为了复杂性),vtagsSemantic,我以前搞砸过,设置起来似乎很复杂,而且它看起来不支持PHP。

另一个选项是 Imenu,但它仅适用于当前缓冲区,并且我希望能够跳转到其他文件中的函数定义(最好使用 Anything 来完成名称)。

我将要从事的项目并不大(总共约30,000行),因此Etags的开销可能不是那么大的问题,但是如果有更好的解决方案,我宁愿不使用它。

那么,您首选的 PHP 编辑系统是什么?


答案 1

除了您已经熟悉的功能外,我还建议您使用以下功能。

电子标签

我不使用ETags,但是SO上已经有一个问题 如何用emacs以编程方式创建/更新TAGS文件。虽然没有发布好的答案,但这可能是一个很好的切入点。

调试

Flymake是一种进行动态语法检查的模式。它也支持PHP。它会在您键入时立即提示语法错误。Emacs 23 附带的 Flymake 版本包含 PHP 支持。如果您有以前的版本,请查看Sacha Chua在Emacs和PHP上的帖子:使用Flymake进行即时语法检查

另一个有用的软件包是 Geben,它允许您以交互方式调试脚本。对于 PHP,您可以使用 XDebug。有一个关于如何做到这一点的详细教程,请参阅使用geben在emacs中调试php

文档查找

PHP 模式有一个很好的功能,可以在 Web 浏览器 ( 或 ) 中查找 PHP 手册中的函数定义。您可以将其与Emacs-W3M结合使用,以获取相关的手册页面,而无需离开Emacs。M-x php-search-documentationC-c C-f


答案 2

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


推荐