2010-12-18 80 views
3

我以爲我有這個設置好,但現在偶爾emacs會去插入一個8字符選項卡,或6或5字符選項卡....讓emacs總是插入(和退格)4個空格標籤?

也許這是由文檔引起的(這發生在一個大的文本文件,其中包含許多不同的製表符間距,但主要是4個字符的空間增量或常規制表符)。

(setq-default indent-tabs-mode 0) 
(setq-default tab-width 4) 
(setq indent-line-function 'insert-tab) 

以上是從我的init.el,這使我想知道爲什麼它偶爾會失敗,將6個字符標籤的代碼。

+0

你可以使用'customize-group indent'。 – jfs 2010-12-18 10:02:09

+0

零而不是零有什麼作用? – cristobalito 2010-12-18 10:47:36

+0

可能存在特定於模式的設置,覆蓋全局默認設置或[目錄特定設置](http://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Variables.html),或[文件特定設置](http://www.gnu.org/software/emacs/manual/html_node/emacs/File-Variables.html)。緩衝區是什麼模式?在當前目錄或其父目錄中是否存在'.dir-locals.el'文件?文件中是否有「局部變量」部分? – Gilles 2010-12-18 17:17:54

回答

1

有問題的主要模式可能有自己的縮進規則,但如果我們正在談論文本模式,那麼確實應該調用indent-line-functioneventually)。您可能需要仔細檢查一下,這不是緩衝區本地,其值與您以前設置的值不同,但我會說更可能的罪魁禍首是tab-stop-list變量。

你可以閱讀有關這一點,在這裏等相關的東西:
http://www.emacswiki.org/emacs/CategoryIndentation

它藏附近的鏈接,列表的底部,但它的關鍵理解在沒有自動壓痕的選項卡的行爲規則。

如果啓用ruler-moderuler-mode-show-tab-stops變量,它可能會讓事情變得輕而易舉。