用Emacs保存Python文件会改变缩进



我以前从来没有发生过这种情况,但是当在Ubuntu 14.04上使用Emacs23时,当我试图保存文件时,我两次有缩进改变-例如

     if classRowDict[currClass] != rowCtr:
        sys.exit("About to enter %s in row %d, instead of row %d" % (currClass, rowCtr, classRowDict[currClass]))
     else:
        data=re.findall("d+.?d*",currLine)

     if classRowDict[currClass] != rowCtr:
 sys.exit("About to enter %s in row %d, instead of row %d" % (currClass, rowCtr, classRowDict[currClass]))
     else:
 data=re.findall("d+.?d*",currLine)

对于较大的代码块,这是一个更大的问题。我将使用Emacs24修复问题,但这是第二次发生这种情况。有人见过这样的情况吗?仅仅保存(ctrlX - S)就会导致Emacs更改Python (.py)文件的缩进。如果是这样,我应该如何避免这种情况,或者至少在将来解决它?

一些调试技巧:

  • 试着查看变量"before-save-hook",看看当你保存时可能正在运行什么。
  • 尝试以"Emacs -q"的方式运行Emacs以删除.emacs文件中配置的任何内容
  • 尝试删除代码块,看看是否有什么东西搞砸了文件的其余缩进。

如前所述,很可能是某个钩子完成的。如果您没有看到原因,请尝试从emacs -Q,加载python模式。并在

处提交bug报告https://bugs.launchpad.net/python-mode

最新更新