在过去的3年里,我的工作需要编写和编辑xml格式的配置文件。xml标记中的内容已经发生了很大的变化,现在它已经变成了一种编程语言。不幸的是,emacs将标记中的所有内容缩进到同一级别。如下所示:

但是,如果我可以像下面这样缩进内容,那就太棒了:

我已经阅读了几个与自定义缩进相关的线程,但我仍然不知道如何做。
我试图创建一个自定义的主模式,但这样做会杀死所有的语法颜色和缩进规则。理想情况下,我想要做的就是修改nxml市长模式缩进规则?尽管如此,我还是不知道这些规则在哪里。
另外,如果我能给一些关键字上色,比如“if”或“set”,那就更好了。
我知道我所要求的是一项艰巨的任务,所以我在这里并不要求一个明确的答案。我只是在寻找一些帮助来指引我正确的方向。
发布于 2012-06-21 23:37:21
最好的方法可能是为标记中的语言编写一个新的主模式,然后使用a multiple major modes package,它允许在同一文件中有多个主模式,因此所包含的语言可以有自己的主模式。
发布于 2012-06-24 03:34:32
你可能想看看这个例子。
(defun nxml-extra-space-indent ()
(nxml-indent-line)
(when (zerop (current-indentation))
(indent-line-to 4)))
(setq indent-line-function 'nxml-extra-space-indent)我根据现有的主模式进行缩进,如果行与特定条件匹配,则自定义缩进。
我认为这是定制缩进的最简单的方法,因为你是从现有的东西开始的,并且你不需要知道特定模式的缩进逻辑是如何实现的。
https://stackoverflow.com/questions/11141426
复制相似问题