2011-02-04 75 views
5

我看了一下python-mode和python.el。我正在使用python-mode.el。我也使用繩子和ropemacs。我正在尋找這些幫助我的文檔,或者其他elisp軟件包或其他東西。在Emacs中編輯Python

我目前的問題是我給出的代碼有不一致的縮進大小。對於某些塊,它將是兩個,對於一些它將會是4.我想清除它,但由於某些原因,當我告訴emacs「修復縮進」時,它基本上每行都會打上標籤,從而將代碼搞砸了。我想要的是保持相同的相對縮進,但在4個空格上標準化。有什麼能讓我輕鬆做到這一點?

我想我可以找到壞的縮進的每個實例,封鎖它,並查詢 - 用4個空格替換2個空格。但是,這對我的精確度有點過分依賴,注意到這應該完成的地方。另外,它有很多代碼。

有人告訴我說,自行車修理工會解決這個問題,但是現在已經有幾年沒有發展......還有其他建議嗎?

謝謝。

+3

不是一個真正的Emacs的答案,但你可能會感興趣[由亞歷克斯·馬爾泰利這樣的回答(http://stackoverflow.com/questions/1024435/HOWTO-FIX-蟒壓痕/ 1024489#1024489)。 – 2011-02-04 21:05:48

+0

謝謝!至少可以解決一個問題! – 2011-02-04 21:29:35

回答

0

假設你已經使用Sven Marnach的評論來清理代碼庫,我猜你只需要使python-mode.el使用你喜歡的縮進樣式?

看看變量py-indent-offsetpy-smart-indentation(也許還有py-continuation-offsetpy-honor-comment-indentation)。以及正常indent-tabs-mode

您可以自定義他們(M-Xcustomize-groupRETpythonRET),或添加自定義功能python-mode-hook。例如: -

(add-hook 'python-mode-hook 'my-python-mode-hook) 
(defun my-python-mode-hook() 
    (setq indent-tabs-mode nil 
     py-smart-indentation nil 
     py-indent-offset 4)) 
-1
(custom-set-variables 
    ... 
    '(indent-tabs-mode nil) 
    '(tab-stop-list (quote (4 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120))) 
    '(tab-width 4)) 

顯然,這些是爲孝敬他們(其中蟒蛇模式一樣)模式的全局設置。我根本沒有用python模式的縮進設置。