您知道在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
答案 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
将确保我们查看应该自定义的一个变量。确实如此。