ipython emacs IndentationError

时间:2012-06-06 19:08:37

标签: emacs ipython

在emacs的ipython提示中真的很恼人:

In [128]: if 1==1:
   .....:     print "yes"
   .....: else:    
   .....:     print "no"
   .....:     
IndentationError: unindent does not match any outer indentation level

它看起来与我完全一致,不确定是什么触发了错误。当我在终端这样做时没有这样的问题。

2 个答案:

答案 0 :(得分:3)

您可以尝试使用

切换自动注册

%autoindent

因为我认为这之前给我带来了问题。

您可以使用ipython's customization永久更改此值。正确导入后(请参阅链接),以下内容应在ipy_user_conf.py中起作用:

# Emacs sets the term to dumb so we can distinguish that way
if os.environ['TERM'] == 'dumb':
    ip.options.autoindent = 0

答案 1 :(得分:0)

是的,这很奇怪。最后,在评估代码时,在emacs shell中使用标准python解释器可以正常工作,但使用ipython失败。如果您使用的是python-mode.el软件包,则可能需要安装ipython.el才能获得正确的ipython支持。 OTOH,如果您使用的是通常附带emacs的python.el,您可能需要切换到标准的python解释器(我相信ipython.el仅适用于第三个 - 派对python-mode.el包,而不是emacs默认使用的python.el