我需要以编程方式从交互式功能内部按下一个键。这是我到目前为止的概要:
(defun answer-to-life-the-universe-and-everything ()
(interactive)
(insert "(* 6 7)")
;; Need to automagically press the RETURN key here
)
我的用例:在REPL缓冲区中,我需要经常执行一个长命令。我可以使用上面的代码创建一个插入所需字符串的交互式函数,但我仍然需要手动点击RETURN以便REPL读取它。用\ n或\ r \ n终止字符串不会做我需要的。
我如何在交互式函数定义中执行此操作?
答案 0 :(得分:4)
更简单的方法是找出enter
键在REPL中绑定的命令,然后在交互式函数中调用该命令。 (要查找,请转到REPL缓冲区并点击C-h k <return>
。)
例如,enter
通过inferior-ess-send-input
使用R
REPL时绑定到ess
,因此该命令插入字符串并“命中输入”:
(defun try-this ()
(interactive)
(insert "print(\"hi\")")
(inferior-ess-send-input))