Emacs中的Python解释器重复行

12

发生了什么:

>>> 2 * 10
2 * 10
20
>>> 

我希望发生的事情是:

>>> 2 * 10
20
>>> 

有人知道为什么命令在执行之前就被打印出来了吗?我找不到任何关于这个问题的文档。我在 Mac OS X 上使用 Emacs 23 和 Python 2.7。


2
你是如何启动Python进程的?使用run-python还是python-shell - harto
2
另一种方法是启动 ansi-term,然后在其中运行 ipython - Maxim Egorushkin
嗯,我不知道 ansi-term。我一直在使用 M-x shell,所以谢谢你提供的信息。 - methodmain
1个回答

12
我不使用Python,但我猜测你正在使用的Python功能已经错误地设置了变量comint-process-echoes。无论您的缓冲区中的值是什么,只需反转布尔值即可。
Comint是Emacs中用于在Emacs中运行下级进程的支持库。它与提示交互,Python shell(或M-x shell)需要告知回声功能。
在存在问题的shell缓冲区中,请执行以下操作:
M-: (setq comint-process-echoes t)  ;; or nil

2
这对我也有效!不知道你能否帮忙解决我的问题,它涉及到如何在每次启动Python时运行一个钩子? - alexplanation
@Eric 我在Ubuntu上使用Emacs的Elpy,我遇到了同样的问题,但这个解决方案并没有起作用。能帮我解决一下吗? - Nithin Varghese
我已经通过将变量elpy-shell-echo-input设置为nil找到了解决方案。 - Nithin Varghese

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接