gpt4 book ai didi

emacs - 在 Emacs 中模拟迷你缓冲区输入

转载 作者:行者123 更新时间:2023-12-02 08:59:57 25 4
gpt4 key购买 nike

我正在寻找一种模拟迷你缓冲区输入的方法。因此,some-func从迷你缓冲区获取一些输入并用它做一些事情。问题是我必须从其他函数calling-func调用some-func,并且我需要以交互方式执行此操作,因此我不能只传递参数。

(defun some-func (arg)
(interactive "*sEnter something: ")
;; Do something with arg
)

(defun calling-func ()
(call-interactively 'some-func)
;; Type to minibuffer
)

有什么想法吗?

谢谢!

最佳答案

探索为什么需要交互式调用其他函数可能会很有趣......但这不是您所要求的。

这是一个以交互方式“调用”函数并将文本发送到迷你缓冲区的示例。您只需使用 Emacs 键盘宏即可:

(defun my-call-find-file (something)
"An example of how to have emacs 'interact' with the minibuffer
use a kbd macro"
(interactive "sEnter something:")
(let ((base-vector [?\M-x ?f ?i ?n ?d ?- ?f ?i ?l ?e return]))
;; create new macro of the form
;; M-x find-file RET <userinput> RET
(execute-kbd-macro (vconcat base-vector
(string-to-vector something)
(vector 'return)))))

相关文档为 Keyboard MacrosFunctions for Vectors .

关于emacs - 在 Emacs 中模拟迷你缓冲区输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2074598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com