移花接木:如何获取上一个命令未完成的输入

假设目前我们有两个命令cmd1cmd2cmd1会从minibuffer中读取一个字符串作为参数。现在,我们输入了一个感到满意的参数,但是突然感觉cmd1没用了,打算把这个参数交给cmd2去执行。这要求我们有一个函数twig可以取走cmd1的minibuffer里的内容,并且移交给cmd2

问题在于,当我们运行twig的时候,cmd1的minibuffer就被隐藏了。怎样才能获取到里面储存的内容呢?在这里我不想对twig执行的上下文作任何假设,否则我只需要创建一个包含储存了minibuffer内容记录的栈的上下文给twig用就够了。

当然,我们可以用复制粘贴大法完成这件事情。但是我觉得这个操作流程太长了。我想做一个可以交给embark-act的动作。

这个问题的背景是我想要清除所有consult-line匹配到的行。我知道有一个函数flush-lines刚好可以做这件事,但是如何把consult-line的参数移交给flush-lines呢?只考虑这个特殊问题是容易的,只要扩展一下consult-line函数就够了。

1 个赞

M-x embark-become

2 个赞

nice,我怎么没想到embark自己本来就保存了minibuffer-content。