2014-02-20 22 views
1

我正在編輯emacs的python代碼。由於某些未知的原因,有時我會在emacs中打開一個.py文件,並且即使它們正確運行,不同的塊也會以不同的方式縮進。我有一個看起來像塊:python的身份弄糟emacs

class Foo: 
    def __init__(self, params, p): 
    """ 
    Foo 
    """ 
     self.params = params 
    self.p = p 
    if self.p: 
     if (not ('A' in self.params)) or \ 
       (not 'B' in self.params): 
     raise Exception, "Error" 

self.params = ...行的縮進顯然是不一樣的下一行self.p = p,但代碼運行。

這是什麼原因造成的?怎麼修復?

當我運行:

$ reindent -d ~/code.py 
上述文件

,沒有打印。

其實,當我把它粘貼到這個文本框中時,它看起來是正確的,直到我按下{}按鈕使它看起來像代碼。任何線索發生了什麼?用這種行爲編寫代碼是不可能的。

我不認爲它是混合製表符和空格,因爲whitespace-mode在Emacs顯示:

enter image description here

+0

@Kevin:我不認爲它是混合它們,因爲應該修復的腳本不會改變事物(http://www.cogsci.nl/blog/tutorials/136-fix-mixed-tabspace-壓痕在-蟒代碼) – user248237dfsf

回答

1

這不會重現我。確保您使用的是Emacs 24.3,並且問題發生在emacs -nw -Q