如何在SGML模式下缩进4个空格

时间:2009-11-03 10:32:06

标签: emacs

您知道在SGML模式下(PSGML)Emacs可以自动缩进XML缓冲区。

C-x-h ;; Select all
M-C-\ ;; Indent

但所有缩进都是2个空格。如何设置自动缩进到4个空格?

我尝试了(setq-default sgml-indent-step 4),但它不起作用。

目前的观点是:

<TESTCASE>
  <NAME>00001<NAME>
  <TIMEOUT>600000</TIMEOUT>

我的期望是

<TESTCASE>
    <NAME>00001<NAME>
    <TIMEOUT>600000</TIMEOUT>

谢谢!

使用GNU Emacs 22.2.1(i386-mingw-nt5.1.2600)
2008-03-26关于RELEASE

1 个答案:

答案 0 :(得分:20)

您正在寻找sgml-basic-offset

编辑:实际上,我应该补充一下我是怎么想的。任何人都不应低估自我编辑的编辑所提供的力量:

打开sgml文档

C-h k tab表示它绑定了一个查看变量indent-line-function的函数。

C-h v indent-line-function告诉我要查看函数sgml-indent-line

C-h f sgml-indent-line对我说的很少。真的没什么。但它也提供了实施的地方。

好吧,看看实现,我发现它正在使用sgml-calculate-indent。这是算法的核心......下来你可以找到tag的情况,最后一个元素在哪里

(+ (current-column) sgml-basic-offset)

快速C-h v sgml-basic-offset将确保我们查看应该自定义的一个变量。确实如此。