删除Emacs中的选项卡不一致

0 emacs

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

(global-set-key (kbd "TAB") 'tab-to-tab-stop)
Run Code Online (Sandbox Code Playgroud)

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

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

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

我也尝试过:

(setq tab-width 4)
Run Code Online (Sandbox Code Playgroud)

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

brl*_*cad 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]

这应该会让你失去兔子洞.

干杯!
肖恩