2011-02-23 57 views
4

我一直在Emacs 23中使用版本爲python.elfound here而沒有發生事故。我決定嘗試股票python.el,跑進一個奇怪的問題:Emacs 23內置python.el縮進使用寬度爲4的製表符

當使用縮進選項卡和4個選項卡寬度,股票python.el將縮進兩個製表字符,每一個級別的,而不是1。用標籤寬度5,縮進將是1個選項卡加3個空格。因此,indent-tabs-modet時,indent-for-tab-command似乎始終強制製表符大小爲8,無論tab-width設置爲什麼。

是否有一些其他與製表符相關的變量可以設置爲覆蓋此行爲?

+0

不是你的問題的答案,只是一個說明:確保硬標籤停止總是8個空格。更小的縮進應始終使用空格,永遠不要改變硬標籤的寬度,否則會導致自己和其他人嚴重偏頭痛。 – 2011-02-24 00:10:20

+0

我不確定我是否遵循。在工作中,Python代碼使用製表符縮進(我討厭這個,但接受它)。我希望Emacs將標籤呈現爲4格寬。你是說這是不好的? – 2011-02-24 00:15:08

+0

你有沒有考慮過使用python模式?它由Python的一些核心開發人員維護:https://launchpad.net/python-mode – 2011-02-24 18:33:55

回答

5

我想通過挖掘股票Emacs 23 python.elthe newest python.el on the block的源代碼後發現了這個問題。

鑑於在python-mode緩衝,壓痕有標籤和4件作品標籤寬度這些設置按預期的股票python.el

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

對於新python.el,您需要更改python-indentpython-indent-offset。我正在使用兩種模式的設置都沒有問題。

如果有人對此問題有更好的解決方案,請添加它,我很樂意接受它作爲正確的答案。

1

卡住使用標籤?檢查

試用emacs 23與python.el?檢查

我最近遇到了同樣的牆壁......我學到的是我真的討厭標籤,我發現python的空白意義令人難以置信的煩人。

您是在init中設置製表符寬度還是使用自定義設置?

我不得不作出一定要改變標籤寬度的「編輯基礎知識」部分中通過自定義獲得「4空間」選項卡貼(一些與全球/本地範圍做)。但樂趣並不止於此... python.el似乎只想縮進第一個tab-stop(現在是第4列),不管我設置indent-tab-mode還是tab-always-indent至。我終於放棄了,回到使用python-mode.el,它有它自己的一套特性,但至少python代碼是「正確地」縮進。

+0

我直接在我的'.emacs'中設置我的製表符寬度,而不是'customize'。事實證明,有一個額外的'python-indent'變量(出現)使股票'python.el'做我想做的事情。 – 2011-02-24 16:54:22

相關問題