我使用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塊到純文件中的功能).代碼將更容易閱讀/遵循.