如何在文本模式下更改emacs的缩进

时间:2010-10-20 09:06:19

标签: emacs indentation

我处于文本模式,希望我的tab键将一行缩进到两个空格。

该文件如下所示:

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)))
    

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

text-mode中的默认值将缩进到其上方行中的第一个非空白字符。

从文本模式中的键绑定文档

  

TAB(翻译自)运行命令indent-for-tab-command,   这是`indent.el'中的交互式编译Lisp函数。

     

它与TAB绑定。

     

(indent-for-tab-command& optional ARG)

     

以适当方式缩进当前主要模式的行或区域或插入制表符。   根据`tab-always-indent',插入制表符或缩进。

     

在大多数主要模式中,如果点在当前行的缩进中,   缩进后将其移动到第一个非空白字符;   否则它会保留在文本中的相同位置....

幸运的是,这可以改变。将以下内容添加到text-mode-hook应该可以满足您的需求:

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

答案 2 :(得分:0)

尝试设置

(setq standard-indent 2)

.emacs