2010-10-20 70 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