我尝试过使用以下内容:
(setq-default tab-width 4)
(setq-default tab-stop-list (list 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60))
但是编辑.py文件时标签的大小仍然是8个字符宽。在其他文件中它已经下降到4,所以我认为Python主要模式以某种方式覆盖了它。我看到我可以将python-indent设置为4,但这会导致插入空格(这违反了我们的代码样式指南)。
如何使标签4个字符宽?
我也试过这个,但它没有做任何事情:
(add-hook 'python-mode-hook
(setq indent-tabs-mode t)
(setq tab-width 4)
)
答案 0 :(得分:43)
(add-hook 'python-mode-hook
(lambda ()
(setq indent-tabs-mode t)
(setq tab-width 4)
(setq python-indent-offset 4)))
答案 1 :(得分:2)
钩子的正确形式是:
(add-hook 'python-mode-hook
(lambda ()
(setq indent-tabs-mode t)
(setq tab-width 4)))
您需要将命令性语句放在函数(lambda)中。
答案 2 :(得分:0)
(setq indent-tabs-mode t)
(setq python-indent-offset 4)
答案 3 :(得分:0)
我遇到了同样的问题,但是使用了C ++文件。最终为我做的是我的.emacs
中的以下内容。
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(c-basic-offset 4 t)
)
实际上我当然是从Customize Emacs
菜单的C ++模式区域设置它,但这就是结果。我会看看python模式是否有类似的东西。 py-basic-offset
还是什么?浏览pyton的模式设置。