Отличный вопрос. Посмотрите, сколько голосов вы получили на своем первом!
Каждый человек имеет такой же опыт, как и вы. Я тоже.
Вместо того, чтобы полагаться на nhtml-режим, который показывал мне ту же странность, что и вы, я описал другой вариант и обнаружил multi-mode.el . Это своего рода многорежимный скелет общего назначения. Чтобы использовать его, вам нужно указать регулярные выражения, чтобы описать, где начинается один режим, а другой заканчивается. Итак, вы ищете <script...>
для запуска блока javascript и <style...>
для запуска блока css. Затем вы включаете свои собственные режимы для каждого блока - если вам нравится эспрессо для javascript, используйте его. И так далее для других регулярных выражений, которые идентифицируют другие блоки.
На практике, когда вы перемещаетесь по документу, для каждого блока включается отдельный режим.
Я использовал многорежимный режим для создания ASP.NET, который позволяет мне редактировать C #, HTML, CSS и Javascript в одном файле с надлежащей подсветкой и подсветкой в зависимости от того, где находится курсор в буфере. Это не идеально, но я обнаружил, что это существенное улучшение существующих возможностей. На самом деле это может быть то, что вы хотите. Попробуйте это.
https://code.google.com/p/csharpmode/source/browse/trunk/aspx-mode.el?r=14