"按"来自交互式功能的密钥

时间:2014-08-13 19:57:57

标签: emacs emacs24

我需要以编程方式从交互式功能内部按下一个键。这是我到目前为止的概要:

(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终止字符串不会做我需要的。

我如何在交互式函数定义中执行此操作?

1 个答案:

答案 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))