【问题标题】:Emacs Lisp: Open a new frame, start IPython, run previous bufferEmacs Lisp:打开一个新框架,启动 IPython,运行上一个缓冲区
【发布时间】:2011-08-16 08:53:12
【问题描述】:
我想编写一个 ELisp 函数以在新帧中启动 Python 解释器 (IPython),然后在 IPython 解释器中运行前一个缓冲区的内容。我正在使用 Emacs 23.3.1、python-mode 6.0 和 ipython.el。
到目前为止,这是我的功能:
(defun python-run ()
"Use to run Python programs."
(interactive)
(let (my-buffer-name buffer-name)
(select-frame (make-frame))
(set-frame-size (selected-frame) 90 60)
(py-shell)
(delete-other-windows)
(switch-to-buffer my-buffer-name)
(py-execute-buffer)))
输出是:
- IPython 通过
py-shell 成功启动。
- 框架中还有两个窗口,不是我想要的。
- 没有成功执行缓冲区,输出为:
在 [1] 中: execfile(r'/var/folders/so/sox1TODiEE0hAb6AVusYq++++Tc/-Tmp-/python-26368Zoi.py') # PYTHON-> MODE
-------------------------------------------------- -------------------------
IO错误
Traceback(最近一次通话最后一次)
/用户/本/ in ()
----> 1 execfile(r'/var/folders/so/sox1TODiEE0hAb6AVusYq++++Tc/-Tmp-/python-26368Zoi.py') # PYTHON-> MODE
IOError:[Errno 2] 没有这样的文件或目录:'/var/folders/so/sox1TODiEE0hAb6AVusYq++++Tc/-Tmp-> /python-26368Zoi.py'
在 [2] 中:## 处理文件 /var/folders/so/sox1TODiEE0hAb6AVusYq++++Tc/-Tmp-/python-> 26368fXv.py 中的区域...
execfile(r'/var/folders/so/sox1TODiEE0hAb6AVusYq++++Tc/-Tmp-/python-26368fXv.py')#PYTHON-MODE
文件“/var/folders/so/sox1TODiEE0hAb6AVusYq++++Tc/-Tmp-/python-26368fXv.py”,第 1 行
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
^
SyntaxError:无效的语法
关于如何获取单个窗口或要执行的缓冲区的任何想法?谢谢!
【问题讨论】:
标签:
python
emacs
elisp
ipython