2014-03-07 89 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)))