我正在和一羣使用vim的Python程序員合作,他們讓Python使用TAB進行縮進。我使用Python模式將Emacs轉換爲4個空格(像它應該,但沒關係)。由於我不想引起麻煩,我想添加一些東西到我的.emacs文件(或其他),使用真正的TABS縮進而不是將它們轉換爲空格。怎麼樣?如何讓Emacs Python模式生成縮進的TAB?
對不起,如果這是在別處回答:我沒有找到它。
我正在和一羣使用vim的Python程序員合作,他們讓Python使用TAB進行縮進。我使用Python模式將Emacs轉換爲4個空格(像它應該,但沒關係)。由於我不想引起麻煩,我想添加一些東西到我的.emacs文件(或其他),使用真正的TABS縮進而不是將它們轉換爲空格。怎麼樣?如何讓Emacs Python模式生成縮進的TAB?
對不起,如果這是在別處回答:我沒有找到它。
您可以在~/.emacs
與python-mode-hook
定義特定Python的設置。爲了使用縮進標籤,你可以使用:
(add-hook 'python-mode-hook
(lambda() (setq indent-tabs-mode t)))
由於python.el
縮進只有4列,默認情況下,上面會使用標籤時的縮進後跟其他縮進位8和選項卡的多。
如果你需要使用一個選項卡每個縮進級別,你還需要設置python-indent
至8。你可以設置tab-width
您要查看的標籤顯示爲任何寬度。
(add-hook 'python-mode-hook
(lambda()
(setq indent-tabs-mode t)
(setq python-indent 8)
(setq tab-width 4)))
我試過把它放在不同的地方,不能使它工作。我的emacs安裝似乎使用了我對黑客入侵的「python.el.gz」。我應該得到python-mode.el嗎? –
@Aaron:你可能確實得到它的工作,但自從python。el默認只在每個級別縮進4列,但您還沒有看到使用製表符。我用更多的解釋更新了答案。 – jamessan
可能需要爲此在python模式:
(setq indent-tabs-mode t)
由於評論者後正確地說,使用標籤進行縮進是一個壞主意,並使用非標準的標籤寬度更是雪上加霜。但是,如果您想進行協作,有時您別無選擇。
根據您的同事們究竟如何配置VIM,你可能需要都接通indent-tabs-mode
並設置tab-width
至4
一個方便的方式做到這一點,是不會弄亂你的其他工作,就是用file local variables。在每個有問題的文件的結尾,把這個:
# Local Variables:
# indent-tabs-mode: 1
# tab-width: 4
# End:
(你必須告訴Emacs的是indent-tabs-mode
是一個安全的局部變量)
別擔心,有地獄的一個特殊的圈子對於這類人也是如此。 – Evpok
不要和那些傢伙一起工作! ;-)) –
既然是「標籤」的縮寫? – BoltClock