为什么rg或者projectile-ripgrep搜索出来的buffer会覆盖呢

它不可以像ag一样,搜索出来的buffer是多个独立的吗?rg只可以有一个搜索结果 image

额,我用的是 ivy-occur,可以把搜索结果搞出去,不会覆盖。没试过不用 ivy 单独用 rg。

纯猜测,试试加按 C-u 前缀,或者看下文档,感觉会有这样的功能。

这个我看了下rg.el的代码,它是直接硬编码的buffer名。应该是改不了的。

ag是提供了 ag-reuse-buffersag-reuse-window 这两个变量来设置的。

我默认都是喜欢搜索在同一个窗口里,所以我把上面两个变量都设置为了t。

(setq ag-reuse-window 't)
(setq ag-reuse-buffers 't)

ripgrep 确实是写死的,估计作者考虑这样使用更习惯吧,可以向作者提个需求。 我试了下,手动修改 buffer 名字是可以的。可以自己加 advice,每次搜索前重命名 buffer 名字。

我个人不大这么用,可以用counsel-rgivy-occur代替你的需求。 另外,个人更推荐 rg.el 而不是ripgrep包。功能更强大,界面更友好。有个rg-save-search (s)命令直接保存当前搜索结果,比ag更合理。l 命令可以列出所有的 rg 搜索 buffer。

上个动图参考:

emacs

2 个赞