如何将.py文件的Emacs选项卡大小设置为4个字符宽?

如何将.py文件的Emacs选项卡大小设置为4个字符宽?,emacs,Emacs,我尝试使用以下方法: (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缩进设置为4,但这会导致插入空格(这与我们的代码样式指南背道而驰) 如何使标签宽度为4个字符 更新: 我也尝试过

我尝试使用以下方法:

(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缩进设置为4,但这会导致插入空格(这与我们的代码样式指南背道而驰)

如何使标签宽度为4个字符

更新: 我也尝试过这个,但没有任何效果:

(add-hook 'python-mode-hook
  (setq indent-tabs-mode t)
  (setq tab-width 4)
)

<>我有同样的问题,但是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)
)

当然,我是从代码的C++模式区域中设置的,定制Emacs 菜单,但结果就是这样。我想看看python模式是否有类似的功能<代码>py基本偏移量还是什么?浏览pyton的模式设置。

钩子的正确形式如下:

(add-hook 'python-mode-hook
          (lambda ()
            (setq indent-tabs-mode t)
            (setq tab-width 4)))

您需要将命令语句放入函数(lambda)中。

py basic offset
不存在。没有帮助,抱歉。更新了我的问题。这解决了我原来的问题,但引入了一个新问题;现在,它会在应该只标记一次的位置标记两次。然而,pt提供了解决方案。tab是一个永无止境的难题。我建议使用:“(setq缩进制表符模式nil)”同意:当你使用制表符时,你正在进入一个痛苦的世界。@HongboZhu在CHANGELOG或Make文件中工作不太好。
python缩进
从24.3开始就过时了。改用
python缩进偏移量
。因为无法理解的原因。为什么emacs不能允许正确使用制表符进行缩进并自动使用空格进行对齐?
(add-hook 'python-mode-hook
          (lambda ()
            (setq indent-tabs-mode t)
            (setq tab-width 4)))
(add-hook 'python-mode-hook
      (lambda ()
        (setq indent-tabs-mode t)
        (setq tab-width 4)
        (setq python-indent-offset 4)))