4

emacs 中 ipython 提示符中真正令人讨厌的问题:

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

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

4

2 回答 2

3

您可以尝试切换自动缩进

%autoindent

因为我认为这曾经给我造成了问题。

您可以使用ipython 的自定义永久更改此设置。正确导入后(请参阅链接),以下内容应在 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
于 2012-06-16T09:02:16.937 回答
0

是的,这很奇怪。就我而言,python在评估代码时,在 emacs shell 中使用标准解释器可以正常工作,但使用ipython失败。如果您正在使用该python-mode.el软件包,您可能需要安装ipython.el以获得适当的ipython支持。OTOH,如果您使用python.el通常随 emacs 提供的,您可能必须切换到标准python解释器(我相信ipython.el仅适用于第三方python-mode.el包,而不是python.elemacs 默认使用的)。

于 2012-06-07T06:00:47.400 回答