我使用web模式(
http://web-mode.org/)混合HTML / PHP文件和php模式为纯PHP文件.最新版本的php-mode还推荐使用混合HTML / PHP文件的Web模式:
https://github.com/ejmr/php-mode#avoid-html-template-compatibility.
不同于其他模式,如mmm模式,mumamo或多网络模式,尝试将不同的行为应用于缓冲区的不同部分,Web模式了解可与HTML混合的所有可用语法/模板.你也可以使用web模式来混合HTML文件/模板,如Twig,Django,ERB …实际上我使用web模式来涉及到HTML.
有一个PHP模板的抓住:其他模板系统有不同的文件扩展名,所以很容易自动切换模式,但PHP模板通常使用相同的.php扩展名;所以我必须通过文件夹进行切换,有时手动调用M-x Web模式.这是我目前的配置:
(defun add-auto-mode (mode &rest patterns)
(mapc (lambda (pattern)
(add-to-list 'auto-mode-alist (cons pattern mode)))
patterns))
(add-auto-mode 'web-mode
"*html*" "*twig*" "*tmpl*" "\\.erb" "\\.rhtml$" "\\.ejs$" "\\.hbs$"
"\\.ctp$" "\\.tpl$" "/\\(views\\|html\\|templates\\)/.*\\.php$")
BTW,尝试分离您的PHP文件和模板,并保持混合的HTML / PHP文件尽可能简单(重构长PHP块到纯文件中的功能).代码将更容易阅读/遵循.