2014-03-07 86 views
1

python模式下的Emacs制表符缩进使用tab而不是4个空格。emacs修复python的制表符缩进

我的emacs init.el文件包含:

(setq-default indent-tabs-mode t) 
(setq-default tab-width 4) 
(setq indent-line-function 'insert-tab) 

我曾尝试:

(setq-default indent-tabs-mode nil) 

但它并没有任何区别。 在emacs中使用white-space模式我看到该选项卡不会缩进4个空格,并且untabify会将该选项卡修复为4个空格。我如何让TAB作为四个白色空间工作?

UPDATE 固定通过改变init.el配置到:

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

回答

2

如果要插入标签,缩进标签模式必须是'T”。改变显示的钩子。 写

(setq indent-tabs-mode t) 

似乎python.el有一个bug,它与旁边模式设置为零时。由于钩子在模式初始化后运行,它应该能够纠正这种情况。

如果没有,请尝试python-mode.el,它允许选择。 你也可以明确地在每个缓冲区中设置由python.el制作的indent-tabs-mode。

1

虽然晚了,以下钩子为我工作。 只有空间

(add-hook 'python-mode-hook 
     (lambda() 
     (setq indent-tabs-mode nil) 
     (setq python-indent 4) 
     (setq tab-width 4)) 
     (untabify (point-min) (point-max))) 

只有标签

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