我正在尝试在emacs23中设置ipython.el
。我已经成功安装了它(将python-mode.el
放入load-path
以取代预装了emacs的python.el
之后。我甚至可以通过M-x py-shell
等运行它。
界面似乎设置得很差,我想知道我做错了,或者我是否需要自定义它以使其按照我喜欢的方式工作。
简而言之,我想要的工作流程:
C-c C-c
时,要么在打开的IPython shell缓冲区(如果有的话)中执行该缓冲区中的Python代码,要么打开另一个缓冲区来执行此操作。但现在发生的事情是:
C-c C-c
,文件缓冲区将切换到IPython缓冲区(意味着我现在有两个重复的iPython缓冲区)并执行文件。我对elisp很新,但我对defadvice
的理解是,我可以建议python-execute-buffer
注意现有文件缓冲区,运行python-execute-buffer
,然后切换回到原始文件缓冲区作为解决方法。
这看起来很傻。任何有关更好的方法来实现这一点的建议将不胜感激!
如果重要:我使用的是OS X 10.6.8,IPython 0.10.1运行Emacs 24.0.50。
提前致谢!
答案 0 :(得分:0)
原来只需安装python-mode.el
和anything-ipython.el
并添加
(require 'python-mode)
(require 'ipython)
(require 'anything-ipython)
(add-hook 'python-mode-hook #'(lambda ()
(define-key py-mode-map (kbd "C-<tab>") 'anything-ipython-complete)))
(add-hook 'ipython-shell-hook #'(lambda ()
(define-key py-mode-map (kbd "C-<tab>")
'anything-ipython-complete)))
在我的.emacs
中,如果在py-shell
之前执行 py-execute-buffer
(以便C-c C-c
)执行代码,那么一切都按照我想要的方式工作在shell中,而不是只打开*Python Output*
缓冲区。