基于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 output :session,以便我可以集成python代码,而结果不会回显每个命令。我怀疑一旦修复了钩子,这就是我的行为,但是我实际上不知道这是否是真的。

最佳答案

我对此的简短调查显示,python-mode(在我的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)

关于python - Emacs Python:回显, Hook 和组织模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9830729/

10-13 07:14
查看更多