基于this question,我发现了如何解决emacs中python shell中的回显问题.我要做的是将此添加到我的.emacs文件中,以便它会自动发生.
(defun python-startup ()
(setq comint-process-echoes t))
(add-hook 'py-shell-hook 'python-startup)
如果我启动python shell(M-x python-shell),则此操作无效.
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 22
22
22
我可以使用M-:(python-startup)运行此函数,然后回显行为停止.
>>> 22
22
我不知道我是否正确设置了挂钩,还是应该完全使用其他挂钩.附带说明一下,我怎么知道什么函数调用了什么钩子?最终目标是最终能够在组织模式下使用:results输出:session,以便我可以集成python代码,而结果不回显每个命令.我怀疑一旦修复了钩子,这就是我的行为,但是我实际上不知道这是否是真的.
解决方法:
我对此的简短调查显示,python模式(如在我的Emacs中找到的)没有py-shell-hook,因此自然不会运行放置在其中的任何内容.
当我查看python-mode时,它没有运行的钩子,因此您有点不走运.
最好的选择就是自己编写命令,例如:
(defun alex-python-shell ()
"Start a python shell my way."
(interactive)
(python-shell)
(python-startup))
如果需要交互式调用python-shell,请使用
(call-interactively 'python-shell)