2010-10-20 61 views
8

我處於文本模式,並希望我的Tab鍵將一行縮進兩個空格。如何更改emacs文本模式中的縮進

文件看起來像這樣:

Line one 

Line two 

光標位於「L」之前:「兩線」,並且我打TAB和它被縮進6米的空間,而不是所需的2-空間。

操作我試過:

  1. 我試着更新變量:tab-stop-list

    (setq tab-stop-list '(2 4 6 8 10 12 14 16)) 
    
  2. 我試着加入text-mode-hook

    (add-hook 'text-mode-hook 
        '(lambda() 
        (setq tab-width 2))) 
    

回答

0

Tr爲Y文本模式設置

(setq standard-indent 2) 

在你.emacs

2

默認爲將縮進到它上面的行的第一個非空白字符。

從在文本模式下的鍵結合文檔

TAB(從翻譯)運行命令縮進換製表命令, 這是在`indent.el」互動編譯Lisp函數。

它被綁定到TAB。

(縮進換製表命令&可選ARG)

縮進線或區域以適當方式爲當前主要模式或插入一個製表。 根據`tab-always-indent',插入一個製表符或縮進。

在大多數主要模式下,如果點位於當前行的縮進中, 它將在縮進後移至第一個非空白字符; 否則它停留在文本中的相同位置上。...

幸運的是,這可以改變。添加以下到您的文本模式,鉤子應該做你需要什麼:

(setq tab-width 2) 
(setq indent-line-function (quote insert-tab)) 
9

添加到您的.emacs:

(add-hook 'text-mode-hook 
      '(lambda() 
      (setq indent-tabs-mode nil) 
      (setq tab-width 2) 
      (setq indent-line-function (quote insert-tab)))) 

Emacs Indentation Tutorial

+0

感謝您的指針! – phs 2015-11-16 10:29:30