缩进在emacs for python中无法正常工作

时间:2014-11-20 05:10:57

标签: python emacs

我正在使用gabrielelanaro在此link提供的emacs-for-python。

缩进似乎根本不适合我。

当我创建需要自动缩进的类,函数或任何其他代码块(如果等等)并按Enter或Ctrl + j时,它不会自动发生。相反,emacs说"算术错误"。

当我在.py文件中的任何位置按Tab时,不会发生这种情况。同样,每次Tab按下都会导致"算术错误"。

另外,当我使用空格手动缩进代码时,我无法删除这些空格!退格这些缩进也会导致"算术错误"。

当我使用常规Python AC模式时,也会出现此问题。

emacs:GNU Emacs 24.3.1(x86_64-pc-linux-gnu,GTK + 3.10.7版)  2014-03-07关于lamiak,由Debian修改

3 个答案:

答案 0 :(得分:20)

检查python-indent-offset的值。如果为0,请将其更改为M-x set-variable RET python-indent-offset RET 4 RET

Emacs尝试在打开时猜测Python文件中使用的偏移量。它可能会混淆,并为一些格式错误的Python文件将该变量设置为0。如果这确实是问题,请使用M-x report-emacs-bug和Python文件的文本提交错误报告,以便修复自动检测。

答案 1 :(得分:6)

与此错误相关

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15975

我发现最快的解决方法是将Jorgens Answer添加到.emacs文件中,在.emacs文件的末尾添加以下内容

(add-hook 'python-mode-hook
  (lambda () (setq python-indent-offset 4)))

答案 2 :(得分:1)

您可以在init.el中注释与自动完成相关的行吗?

; (add-to-list 'load-path "~/.emacs.d/auto-complete-1.3.1")
; (require 'auto-complete)
; (add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict")
; (require 'auto-complete-config)
; (ac-config-default)
; (global-auto-complete-mode t)