删除Emacs中的选项卡不一致

时间:2009-04-07 05:49:58

标签: emacs

要在emacs中设置标签我在.emacs中有这一行:

(global-set-key (kbd "TAB") 'tab-to-tab-stop)

我正在寻找一些方法让所有模式在emacs中显示标签为4个空格,并让emacs将标签保存为标签字符(而不是将它们保存为空格)。

如果我正在使用c-mode,那么.emacs行会使标签看起来像8个空格并将它们保存为制表符。但是在ada-mode中输入会自动缩进(我很好)并且它将在emacs中显示为4个空格并保存为四个空格。

有人知道在按Tab键时如何普遍设置标签以插入一个标签(并且没有空格),并将其作为四个空格显示在emacs上?

我也试过了:

(setq tab-width 4)

但我仍然遇到与ada-mode相同的问题。

1 个答案:

答案 0 :(得分:5)

您无法为所有模式执行此操作,因为存在特定于模式的缩进变量,但您可以将其设置为您关注的所有语言。对于C,类似于.emacs中的以下内容应该适用于您所描述的内容:

(add-hook 'c-mode-common-hook`
    (lambda ()
        (setq c-basic-offset 4)
        (setq tab-width 4)
        (setq standard-indent 4)
        (setq c-tab-always-indent t)
    )
)

这将设置4个字符的制表位,并使4为所有C风格模式的默认缩进级别。对于其他语言及其各自的模式,您必须查找其缩进变量并在该模式的公共钩子中相应地设置它们。一些示例包括'sh-indentation',tcl-indent-level和'perl-indent-level。找出需要设置的最简单方法是运行:

M-x describe-key [TAB]

那会把你送到兔子洞。

干杯!
肖恩