我对Emacs缩进范例感到困惑。
我在.emacs
文件中有这个:
(setq-default tab-width 4)
如果我在以下情况下按TAB
<ul>
(caret)
</ul>
它最终会像这样
<ul>
(caret)
</ul>
(HTML标记之间有2个空格缩进。)
它最终应该是这样的:
<ul>
(caret)
</ul>
我尝试了一切:
(setq-default tab-width 4)
(setq-default indent-tabs-mode t)
(setq tab-stop-list '(4 8 12 16))
我已将每个可能的Emacs设置设置为缩进为4,但仍有2个空格缩进。
有什么建议吗?
答案 0 :(得分:23)
设置标签宽度不适用于此方案,但我理解您的困惑; Emacs提供了几个与选项卡相关的变量,并且确定特定场景的正确变量可能会令人困惑。
This EmacsWiki article provides more details about setting the indentation level for HTML;一般来说,EmacsWiki是Emacs提示的绝佳资源。
在这种特定情况下,由于您使用的是Emacs的标准HTML模式(html-mode
定义的sgml-mode
),因此您要设置的变量为sgml-basic-offset
。该变量默认为2,但您可以将其更改为4,如下所示:
(setq sgml-basic-offset 4)
要使此更改仅针对html-mode
,您可以使用以下代码:
(add-hook 'html-mode-hook
(lambda ()
;; Default indentation is usually 2 spaces, changing to 4.
(set (make-local-variable 'sgml-basic-offset) 4)))
这一切都假定您使用的是Emacs 22或更高版本;如果不是这种情况,我链接到的EmacsWiki页面包含早期版本的Emacs的解决方法。