因此,emacs对CSS的自动缩进让我感到沮丧。这就是我喜欢CSS的样子:
#foo ul.bar {
....
}
#foo ul.bar li {
....
}
#foo ul.bar li a {
....
}
这就是emacs给我的自动缩进:
#foo ul.bar {
....
}
#foo ul.bar li {
....
}
#foo ul.bar li a {
....
}
如果他们使用级联,我喜欢逐渐缩进我的样式。但是,emacs会将所有内容自动提交到同一级别。
我能做什么?
答案 0 :(得分:3)
我认为我在Emacs中使用的任何CSS模式都不会支持开箱即用的缩进样式 - 他们不会看选择器的内容,只是看看是否有东西是选择器(不要缩进)或是选择器内的规则(缩进一步)。
如果您想更改此设置,则需要覆盖为CSS模式执行缩进的功能。
答案 1 :(得分:3)
我建议您使用“Sass”开始编译CSS - .scss
文件看起来就像CSS,但允许您完全按照您在示例中的向往方式嵌套规则,它产生非常漂亮的输出,看起来像手工制作的CSS - 所以,首先,你的CSS仍然是可以理解的;第二,如果你想放弃Sass,你可以删除你的.scss
文件并从那时起编辑.css
个文件。
而且Emacs已经完美地缩进了Sass,因为Emacs只是遵守了计算花括号数量和相应缩进的正常规则。如果转换为Sass,上面的源代码将如下所示:
#foo ul.bar {
...
li {
...
a {
...
}
}
}
显然,这会消除重复并使您更容易阅读和维护CSS。 Sass项目位于:http://sass-lang.com/
答案 2 :(得分:1)
我知道这是一个黑客,但我已经看到java模式或多或少与css一起工作。
答案 3 :(得分:0)
您可以使用emacs内置标识。我在任何模式下工作,并使用css文件做得不错。
(defun cesco/indent ()
(interactive)
(mark-whole-buffer)
(indent-region (point-min) (point-max) nil)
(pop-global-mark)
)