Emacs Python:回显,挂钩和组织模式

基于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)
上一篇:如何区分emacs缓冲区中的Python字符串和docstring?


下一篇:如何使用emacs的一个实例作为默认文本编辑器? [Linux的]