2

我正在尝试ipython.el在 emacs23 中进行设置。我已经成功安装了它(python-mode.el在我load-path的 to supplantpython.el预先安装了 emacs 之后)。我什至可以让它通过M-x py-shell等运行。

界面似乎设置得很糟糕,我想知道我是否做错了,或者我是否需要对其进行自定义以使其按我喜欢的方式工作。

简而言之,我想要的工作流程:

  • 在一个或多个缓冲区中,编辑 Python 代码
  • 当我进入C-c C-c该缓冲区时,要么在打开的 IPython shell 缓冲区(如果有)中执行该缓冲区中的 Python 代码,要么打开另一个缓冲区来执行此操作。

但现在发生的是:

  • IPython shell 在一个缓冲区中,Python 文件在另一个缓冲区中,如果我点击C-c C-cPython 文件缓冲区,文件缓冲区将切换到 IPython 缓冲区(这意味着我现在有两个重复的 iPython 缓冲区)并执行文件。
  • 这很烦人。

我对 elisp 很陌生,但我的理解defadvice是,我可以建议python-execute-buffer注意现有的文件缓冲区,运行python-execute-buffer,然后切换回原始文件缓冲区作为解决方法。

这似乎很愚蠢。任何有关更好方法来实现此目的的建议将不胜感激!

如果重要的话:我在 OS X 10.6.8 上运行 Emacs 24.0.50 的 IPython 0.10.1。

提前致谢!

4

1 回答 1

0

原来,简单地安装python-mode.elanything-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*缓冲区。

于 2011-07-08T20:07:08.880 回答