Comint-Mode是否有类似eval-print-last-sexp的功能?
Is there a function like eval-print-last-sexp for Comint-Mode?
对于 emacs 中的 comint 派生模式,是否有与 eval-print-last-sexp 等效的函数?
具体来说,我正在使用 python-mode(与 elpy),我正在寻找一种方法将区域的内容发送到 Python 进程,然后将结果打印到我正在使用的 python 脚本的下一行。
将结果打印到 Messages 缓冲区也是可以接受的,但是最好使用 eval-print-last-sexp 的行为。
我是 运行 Emacs 25.1.1 和 elpy 1.13.0。
这取决于 comint 派生模式,因为您需要重定向进程输出。不同的模式有不同的与劣质进程交互的方法。 Python模式已经有这个功能,python-shell-send-string-no-output
(其他模式也有类似的功能,但你需要搜索它们)。
我不确定你到底想为 python 定义一个 sexp,但这里有一个发送当前行的示例,输出类似于 eval-print-last-sexp
.
(defun python-eval-print-last-sexp ()
"Print result of evaluating current line into current buffer."
(interactive)
(let ((res (python-shell-send-string-no-output
;; modify to get a different sexp
(buffer-substring (line-beginning-position)
(line-end-position))))
(standard-output (current-buffer)))
(when res
(terpri)
(princ res)
(terpri))))
elpy-shell-send-statement
来自 Emacs Python Development Environment.
对于 emacs 中的 comint 派生模式,是否有与 eval-print-last-sexp 等效的函数?
具体来说,我正在使用 python-mode(与 elpy),我正在寻找一种方法将区域的内容发送到 Python 进程,然后将结果打印到我正在使用的 python 脚本的下一行。
将结果打印到 Messages 缓冲区也是可以接受的,但是最好使用 eval-print-last-sexp 的行为。
我是 运行 Emacs 25.1.1 和 elpy 1.13.0。
这取决于 comint 派生模式,因为您需要重定向进程输出。不同的模式有不同的与劣质进程交互的方法。 Python模式已经有这个功能,python-shell-send-string-no-output
(其他模式也有类似的功能,但你需要搜索它们)。
我不确定你到底想为 python 定义一个 sexp,但这里有一个发送当前行的示例,输出类似于 eval-print-last-sexp
.
(defun python-eval-print-last-sexp ()
"Print result of evaluating current line into current buffer."
(interactive)
(let ((res (python-shell-send-string-no-output
;; modify to get a different sexp
(buffer-substring (line-beginning-position)
(line-end-position))))
(standard-output (current-buffer)))
(when res
(terpri)
(princ res)
(terpri))))
elpy-shell-send-statement
来自 Emacs Python Development Environment.