我是一个人.除非我正在处理已经使用空格的项目,否则我会使用制表符.我主要做php和html工作.我已经在php中运行良好.但我无法弄清楚如何让html模式使用制表符而不是两个空格.
这是我到目前为止:
(setq c-default-style "python") (setq-default c-basic-offset 4 tab-width 4 indent-tabs-mode t)
我可以设置什么,以便html模式将使用选项卡?
(add-hook 'html-mode-hook (lambda() (setq sgml-basic-offset 4) (setq indent-tabs-mode t)))
这是有效的,因为在什么indent-tabs-mode
情况下t
,Emacs的默认缩进逻辑会尽可能地用空格替换空格,同时仍然保留缩进的正确列偏移量.因此,举例来说,如果你的代码应该由每一级缩进四个字符(即偏移sgml-basic-offset
是4
,如上),你的代码应缩进两个层次深,并且有每一级缩进四列,然后Emacs的计算,如果它缩进使用两个制表符和零空格,这将导致正确的列偏移.
然而,这也意味着,如果你搞砸了上面的话,上面的内容将无法正常工作tab-width
.例如,如果您将其设置为8
并且正在缩进一个级别深度,则Emacs会计算即使它只插入一个选项卡,视觉列偏移量(8)也将大于所需的偏移量(4).所以它会插入四个空格.尝试设置sgml-basic-offset
与您的相同的东西tab-width
.