Emacs中HTML模式下的选项卡

Ech*_*ica 12 emacs

我是一个人.除非我正在处理已经使用空格的项目,否则我会使用制表符.我主要做php和html工作.我已经在php中运行良好.但我无法弄清楚如何让html模式使用制表符而不是两个空格.

这是我到目前为止:

(setq c-default-style "python")
(setq-default c-basic-offset 4
              tab-width 4
              indent-tabs-mode t)
Run Code Online (Sandbox Code Playgroud)

我可以设置什么,以便html模式将使用选项卡?

Sea*_*ght 27

(add-hook 'html-mode-hook
          (lambda()
            (setq sgml-basic-offset 4)
            (setq indent-tabs-mode t)))
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为在什么indent-tabs-mode情况下t,Emacs的默认缩进逻辑会尽可能地用空格替换空格,同时仍然保留缩进的正确列偏移量.因此,举例来说,如果你的代码应该由每一级缩进四个字符(即偏移sgml-basic-offset4,如上),你的代码应缩进两个层次深,并且有每一级缩进四列,然后Emacs的计算,如果它缩进使用两个制表符和零空格,这将导致正确的列偏移.

然而,这也意味着,如果你搞砸了上面的话,上面的内容将无法正常工作tab-width.例如,如果您将其设置为8并且正在缩进一个级别深度,则Emacs会计算即使它只插入一个选项卡,视觉列偏移量(8)也将大于所需的偏移量(4).所以它会插入四个空格.尝试设置sgml-basic-offset与您的相同的东西tab-width.