我正在 emacs 中编辑 python 代码。由于某些未知的原因,有时我在 emacs 中打开 .py 文件,不同的 block 缩进不同,即使它们运行正确。我有一个看起来像这样的 block :
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
显示:
最佳答案
这不会为我重现。确保您使用的是 Emacs 24.3,并且 emacs -nw -Q
会出现问题。
关于emacs 中的 Python 缩进困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21918619/