2009-11-03 31 views
2

在SGML模式下(PSGML),您知道Emacs可以自動縮進XML緩衝區。如何在SGML模式下縮進4個空格

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

+0

不是重複的,但您可能會發現http://stackoverflow.com/questions/69934/set-4-space-indent-in-emacs-in-text-mode翔實。 – 2009-11-03 10:34:44

回答

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將確保我們在尋找一個應該在一個變量進行定製。確實如此。

+0

好故事!感謝您添加額外的細節。 – 2009-11-03 13:18:48

+0

謝謝!你告訴我不僅答案,而且還有方法。 這是一個非常有效的方法來跟蹤Emacs上的任何問題! 我試過了,它的工作原理。謝謝! (setq sgml-basic-offset 4) – Buzz 2009-11-05 04:35:18

+0

故事的+1 – haylem 2013-07-25 16:28:34

相關問題