对于emacs中的comint派生模式,是否有与eval-print-last-sexp等效的函数?
具体来说,我使用python-mode(使用elpy)并且正在寻找一种方法将区域内容发送到Python进程,然后在python脚本的下一行打印结果I&# 39;我在工作。
将结果打印到消息缓冲区也是可以接受的,但是eval-print-last-sexp的行为将是首选。
我正在运行Emacs 25.1.1和elpy 1.13.0。
答案 0 :(得分:1)
这将取决于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))))
答案 1 :(得分:0)
elpy-shell-send-statement
来自Emacs Python Development Environment。