mini-buffer 的内容如何导出到 buffer 中

比如我搜索文件的时候,找到了一些文件。 image

这些文件都是要想打开查看的,但是如果在 mini-buffer 中,一次只能开一个。

我想能不能把这些内容输出到 buffer 中,这样就下次就不用再次搜索了。

用 verticol 的话,可以试试 vertico-repeat : vertico/vertico-repeat.el at main · minad/vertico · GitHub

(require 'vertico-repeat)
(keymap-global-set "M-R" #'vertico-repeat)
(add-hook 'minibuffer-setup-hook #'vertico-repeat-save)

embark

这个插件好像很强大,但是不太会用呀。请问大佬有没有相关的示例,官方的 README 看得云里雾里。

这个对于 counsel-projectile-find-file 这类命令是不是还要进行设置才能使用。

我现在用的是 ivy, 发现用 C-M-m, C-M-n, C-M-p 这几个按键的组合可以在保持 mini-buffer 不关闭的情况的下浏览选项中的文件。

embark 好像也能实现,不过不太会用,希望大佬能补充示例

就是给 embark-act 绑定一个快捷键,然后在有 minibuffer 出来的时候,按那个快捷键,会出来一个菜单,里面选 Export,就会给你输出到一个 buffer 里面。那个 buffer 里面还可以进一步操作。 例如我常用的,把 consult 搜索出来结果,export 到一个 buffer 里面,然后一起编辑。 如果你用 doom emacs 的话,那么 minibuffer 里面绑定的是 C-; ,直接用就行。

embarkembark-exportivyivy-occur。我是这么用的:

(define-key vertico-map (kbd "<f2>") 'embark-export)

搜索中只要按 f2 就能把搜索到的内容导出到 buffer,grepswiperimenu 的时候很好用。

谢谢大佬们,现在可以导出到 buffer 里面了,buffer 按 Enter 键可以正常切换。可是 swiper 的结果按 Enter 键就没有办法正常切换了,提示 ivy-call: Wrong type argument: number-or-marker-p, nil 不知道是哪里的的设置不对。 :weary:

找到了, ivy 用 ivy-occur 就行了,默认绑定到 C-c C-o, 大佬们推荐的 embark-export 和 ivy 的兼容性不是非常好。但好像通用性更高,等我找空学完后再来总结吧。