[英]Emacs Lisp: Open a new frame, start IPython, run previous buffer
我想写一个 ELisp function 来在一个新框架中启动一个 Python 解释器(IPython),然后在 IPython 解释器中运行前一个缓冲区的内容。 我正在使用 Emacs 23.3.1、python-mode 6.0 和 ipython.el。
到目前为止,这是我的 function:
(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)))
output 是:
py-shell
成功启动。In [1]: execfile(r'/var/folders/so/sox1TODiEE0hAb6AVusYq++++Tc/-Tmp-/python-26368Zoi.py') # PYTHON-> MODE --------------------------------------------------------------------------- IOError Traceback (most recent call last) /Users/ben/ in () ----> 1 execfile(r'/var/folders/so/sox1TODiEE0hAb6AVusYq++++Tc/-Tmp-/python-26368Zoi.py') # PYTHON-> MODE IOError: [Errno 2] No such file or directory: '/var/folders/so/sox1TODiEE0hAb6AVusYq++++Tc/-Tmp-> /python-26368Zoi.py' In [2]: ## working on region in file /var/folders/so/sox1TODiEE0hAb6AVusYq++++Tc/-Tmp-/python-> 26368fXv.py... execfile(r'/var/folders/so/sox1TODiEE0hAb6AVusYq++++Tc/-Tmp-/python-26368fXv.py') # PYTHON-MODE File "/var/folders/so/sox1TODiEE0hAb6AVusYq++++Tc/-Tmp-/python-26368fXv.py", line 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ^ SyntaxError: invalid syntax
关于如何获得单个 window 或要执行的缓冲区的任何想法? 谢谢!
不确定 python output 但在 elisp 代码中,您没有将 my-buffer-name 设置为任何内容(它将为零)。 它应该是:
(let ((my-buffer-name (buffer-name))
....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.