Emacs - правильно вставляемый код css, встроенный в html файл

Когда я вставляю следующий html файл в emacs, строка "background-color" не имеет отступов правильно. Можно ли использовать emacs для использования css-режима для части css?

<!doctype html>
<html lang=en>
    <head>
        <meta charset=utf-8>
        <title>Page</title>
        <style type = "text/css"> 
            h2 {
            background-color: #BBB;
            }
        </style> 
    </head>
    <body>
        <p>
            <h2>Title</h2>
        </p>
    </body>
</html>

Вопрос: май 2011

Вопрос отредактирован: декабрь 2013

Edit:

У меня создается впечатление, что близоруко искать или разрабатывать метод обработки css и html в частности. Правильное решение является более широким, которое обрабатывает файл, состоящий из любых двух подмножеств. Возможно, этот вопрос не заслуживает серьезного внимания, потому что два подмножества должны быть изолированы в своих файлах, но для быстрых тестов и небольших примеров вопрос стоит. Предложения рабочих решений приветствуются.

Ответ 1

Как вы знаете, вам лучше распределять HTML, Javascript, CSS и c. среди своих собственных файлов, но часто это невозможно, особенно при работе с устаревшим кодом. В таких случаях я нашел web-mode чрезвычайно ценным.

В отличие от nXhtml и других подобных решений, веб-режим напрямую обрабатывает блокировку шрифтов и отступы для каждого типа кода, вместо того, чтобы пытаться вызвать надлежащий основной режим для любой точки, где бы то ни было, или пытается наложить основные режимы на один другой в том смысле, что все, но гарантированно не работают надежно. Хотя этот подход, по общему признанию, представляет собой существенное дублирование усилий и означает, что вы, например, не получаете преимущество Steve Yegge отличного js2-режима при редактировании встроенного Javascript, это означает, что вы получаете надежную блокировку шрифта и отступы, не имея тратить много времени на хрупкое придирчивость; имея установленный и настроенный веб-режим, вы можете более или менее прыгать прямо и начать взламывать:

web-mode sample screenshot from web-mode.org

Я потратил больше времени, чем я хотел бы вспомнить о работе с MuMaMo и его ижев, и все, что я выбрал, было головной болью. (И улучшенная дисциплина в отношении предотвращения встроенных CSS и Javascript, но это было чисто из самообороны). Веб-режим - это фантастическое решение этой проблемы, и я рекомендую его без оговорок.

Ответ 2

Проверьте режим nXhtml: http://ourcomments.org/Emacs/nXhtml/doc/nxhtml.html

На странице:

Еще одна важная особенность - возможность смешать несколько языков в одном буфере и получить правильную подсветку синтаксиса и отступы для каждого из них.

Изменить: EmacsWiki статья о нескольких режимах имеет некоторые другие опции (поверх Mumamo, что и использует nXhtml). Особенно интересным может быть multi-web-mode, который изменяет режим, основанный на том, где находится точка.

Я сам использовал только режим nXhtml, но многопользовательский режим можно упростить и упростить для использования — в то время как мне нравился nXhtml, я отчетливо помню, что это была сложность в настройке.