Emacs - 正确缩进嵌入在html文件中的css代码

时间:2011-05-09 23:02:52

标签: html css emacs

当我在emacs中缩进以下html文件时,“background-color”行没有正确缩进。是否可以将emacs用于css部分的css-mode?

<!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年5月

编辑问题:2013年12月

修改

我的印象是,寻找或开发一种特别是处理css和html的方法是近视的。正确的解决方案是处理由任意两个子集组成的文件的更广泛的解决方案。也许这个问题不值得认真关注,因为这两个子集应该在他们自己的文件中隔离,但是对于快速测试和较小的例子,问题就在于此。欢迎提出工作解决方案的建议。

2 个答案:

答案 0 :(得分:3)

如您所知,您最好在他们自己的文件中分发HTML,Javascript,CSS和c,但通常这是不可能的,尤其是在处理遗留代码时。在这种情况下,我发现web-mode非常有价值。

与nXhtml和其他此类解决方案不同,web模式直接处理每种类型代码的字体锁定和缩进,而不是尝试在任何地方调用适当的主模式,或尝试将主要模式分层在一个另一种方式,但保证不能可靠地工作。虽然这种方法确实代表了大量的重复工作,并且意味着你没有,例如,在编辑内联Javascript时得到Steve Yegge卓越的js2模式的好处,它 意味着你得到可靠的字体锁定和缩进,无需花费大量时间处理脆弱的诡计;安装和自定义网络模式后,你可以或多或少地跳进去开始攻击:

web-mode sample screenshot from web-mode.org

我花了更多的时间来记住处理MuMaMo之类的事情,而我所得到的只是头痛。 (并且关于避免内联CSS和Javascript的改进规则,但这纯粹是出于自卫。)Web模式是解决该问题的绝佳解决方案,我毫无保留地推荐它。

答案 1 :(得分:1)

查看nXhtml模式:http://ourcomments.org/Emacs/nXhtml/doc/nxhtml.html

从其页面:

  

另一个重要特性是能够在一个缓冲区中混合使用多种语言,并为每种语言获得正确的语法高亮和缩进。

编辑:关于多种模式的EmacsWiki文章还有其他一些选项(在Mumamo之上,这是nXhtml使用的)。您可能会发现特别有趣的是multi-web-mode,它根据点的位置更改模式。

我自己只使用了nXhtml模式,但是多网页模式可能更容易设置和使用 - 虽然我喜欢nXhtml,但我清楚地记得它是一个麻烦的设置。