我在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
显示:
答案 0 :(得分:1)
这不适合我。确保您使用的是Emacs 24.3,并且问题出现在emacs -nw -Q
。