Python缩进在emacs中搞砸了

时间:2014-02-20 20:19:06

标签: python emacs indentation

我在emacs中编辑python代码。由于某些未知原因,有时我在emacs中打开一个.py文件,即使它们正确运行,不同的块也会有不同的缩进。我有一个块看起来像:

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

在上面的文件中,没有打印任何内容。

实际上,当我将其粘贴到此文本框中时,它看起来正确,直到我按下{}按钮使其看起来像代码。有什么线索在这里发生了什么?用这种行为编写代码是不可能的。

我认为它不是混合制表符和空格,因为emacs中的whitespace-mode显示:

enter image description here

1 个答案:

答案 0 :(得分:1)

这不适合我。确保您使用的是Emacs 24.3,并且问题出现在emacs -nw -Q