我正试图在Emacs 22和23(两个不同的服务器)中使ERB模板“正常工作”。
我在网上发现了几个几乎完全使用这个代码段的例子。请注意,我不想要任何背景颜色,因为我在SSH终端上工作。
这正确地检测第一个区域的开始位置,因为当点移动时模式线会发生变化。但是有些东西是不对的,因为它没有突出显示我的ruby代码,除非我用至少两个空行清除它,并且它似乎也认为ruby代码的第一段下面的所有内容都是ruby代码,即使在结束标记之后也是如此
我只能假设模式不正确,我想了解语法,以便我自己可以更好地调试它。谁能告诉我这里所有的@
符号是什么意思?
此外,有没有人真正让ERB模板在mmm模式下工作?
(require 'mmm-mode)
(require 'mmm-auto)
(setq mmm-global-mode 'maybe)
(setq mmm-submode-decoration-level 0)
(mmm-add-group
'fancy-html
'((html-erb
:submode ruby-mode
:match-face (("<%#" . mmm-comment-submode-face)
("<%=" . mmm-output-submode-face)
("<%" . mmm-code-submode-face))
:front "<%[#=]?"
:back "%>"
:insert ((?% erb-code nil @ "<%" @ " " _ " " @ "%>" @)
(?# erb-comment nil @ "<%#" @ " " _ " " @ "%>" @)
(?= erb-expression nil @ "<%=" @ " " _ " " @ "%>" @)))))
(add-to-list 'mmm-mode-ext-classes-alist '(html-mode nil fancy-html))
答案 0 :(得分:2)
我有a similar setup,这甚至可能是您尝试的基础。即使缺少新行也会执行font-lock-fontify-buffer
会导致显示正确的突出显示,因此问题可能在于mmm模式。
mmm-mode
设置的主要好处是我可以很容易地看到ERB区域;设置从来没有完全适合我的语法突出显示的嵌入式代码,虽然我已经updating mmm-mode
for compatibility with recent emacsen,但如果您真的想要详细的子区域突出显示,那么您可能值得探索替代方案。
和你一样,我一直不愿诉诸nxhtml
,因为它非常重,我相信它也有显示怪癖。
我还要指出haml-mode
在语法高亮显示嵌入式代码块方面做得非常好(最初只是ruby代码,直到我提供了javascript和css支持),这是为什么有几个原因之一这些天我更喜欢haml到html + erb。
答案 1 :(得分:0)
首先,如果您有对该框的SSH访问权限,请使用tramp。
我对ERB没有深刻的MMM模式魔力。但是,我使用Rinari和nxhtml,这一切都正常。如果您需要帮助,可以询问有关rinari和nxhtml的问题。
答案 2 :(得分:0)