今年夏天我将为我的工作做一些PHP编辑,我正在寻找一个有效的Emacs设置来编辑它.我已经在Emacs上投入了大量资金,因此切换到另一个编辑器是不值得的.
现在,我有nXhtml模式,它提供了一个带有语法高亮的PHP模式(在野外至少有三个不同的模式)以及用于编辑嵌入在HTML中的PHP的MuMaMo.我刚刚开始分别使用Auto-Complete和Anything进行编程和一般的Emacs.
我真正想要的是让Emacs真正理解项目的有效方法,而不仅仅是突出显示.Etags看起来是一个不错的选择,但看起来生成新标签的过程有点艰巨和手动(或至少不可见).Etags的优点在于它们可以与Anything和Auto-Complete很好地集成.其他可能的选择是gtags(虽然我对安装非elisp文件犹豫不决,只是为了复杂性),vtags或Semantic,我以前搞过这些并且设置起来很复杂,而且它看起来不像它支持PHP.
另一个选项是Imenu,但它只适用于当前缓冲区,我希望能够跳转到其他文件中的函数定义(最好使用Anything来完成名称).
我将要开展的项目并不是那么大(总共大约30,000行),因此Etags的开销可能不会是一个大问题,但如果有更好的解决方案,我宁愿不使用它.
那么你首选的PHP编辑系统是什么?
除了您已熟悉的功能外,我建议您使用以下功能.
我不使用ETag,但是已经有一个问题如何以编程方式创建/更新带有emacs的TAGS文件.尽管如此,没有公布好的答案,但这可能是一个很好的切入点.
Flymake是一种快速进行语法检查的模式.它也支持PHP.它会在您键入时立即提示语法错误.Emacs 23附带的Flymake版本包含PHP支持.如果您有以前的版本,请查看Sacha Chua关于Emacs和PHP的帖子:使用Flymake进行动态语法检查.
另一个有用的包是Geben,它允许您以交互方式调试脚本.对于PHP,您可以使用XDebug.有关如何执行此操作的详细教程,请参阅使用geben的emacs中的Debug php.
PHP模式有一个很好的功能,可以在Web浏览器(M-x php-search-documentation
或C-c C-f
)中的PHP手册中查找函数的定义.您可以将它与Emacs-W3M结合使用,无需离开Emacs即可获得相关的手册页.
web-model.el(可在web-mode.org上获得)处理嵌入在html文档中的很好的php块.这个主要模式也将突出显示js和css部分.