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

Buz*_*uzz 2 emacs

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

C-x-h ;; Select all
M-C-\ ;; Indent
Run Code Online (Sandbox Code Playgroud)

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

我试过(setq-default sgml-indent-step 4),但它不起作用.

目前的观点是:

<TESTCASE>
  <NAME>00001<NAME>
  <TIMEOUT>600000</TIMEOUT>
Run Code Online (Sandbox Code Playgroud)

我的期望是

<TESTCASE>
    <NAME>00001<NAME>
    <TIMEOUT>600000</TIMEOUT>
Run Code Online (Sandbox Code Playgroud)

谢谢!

使用
2008-03-26的GNU Emacs 22.2.1(i386-mingw-nt5.1.2600)发布RELEASE

Bah*_*bar 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确保我们正在查看应该自定义的一个变量.确实如此.