Emacs 将文本插入活动的小型缓冲区

Emacs 将文本插入活动的小型缓冲区,emacs,minibuffer,Emacs,Minibuffer,我试图在运行外部命令后将文本插入迷你缓冲区。例如 (call-interactively 'eval-expression) (insert "blah") 当然,问题是在用户输入输入之前,eval表达式不会返回。我的最终目标是在任意命令(即“默认字符串”或模板)的小缓冲区提示符中添加一些默认的可编辑文本。我怎样才能做到这一点呢?使用minibuffer设置挂钩: (defun foo () (insert "ABCDE")) (add-hook 'minibuffer-setup-hook

我试图在运行外部命令后将文本插入迷你缓冲区。例如

(call-interactively 'eval-expression)
(insert "blah")

当然,问题是在用户输入输入之前,eval表达式不会返回。我的最终目标是在任意命令(即“默认字符串”或模板)的小缓冲区提示符中添加一些默认的可编辑文本。我怎样才能做到这一点呢?

使用
minibuffer设置挂钩

(defun foo () (insert "ABCDE"))

(add-hook 'minibuffer-setup-hook 'foo)

是否有一种方法可以临时完成此操作,而不必在每次进行函数调用时添加/删除挂钩?我只想在使用我的自定义函数时使用此行为。每次需要“临时”添加/删除时,只需添加/删除即可。这并不昂贵。将添加/删除代码放在您使用的任何需要它的函数中。谢谢,我只是想确保没有更惯用的方法来完成它(添加/删除钩子似乎有些浪费)不,这是惯用的方法:为钩子添加/删除。