counsel-projectile-ag 如何像 Swiper 一样预览当前 candicate?

在 Swiper 的搜索结果中,C-n 或 C-p 移动到下一个Candicate 的时候,被搜索的 buffer 会自动跳转到对应的行,

swiper

counsel-projectile-ag 只能上下切换 candicate,不能跳转到 buffer,要如何配置才可以做到同样的功能?

counsel-projectile-ag

没有大佬知道吗?

这个需求很奇怪啊,如果搜索到1000条,就可能打开1000个 buffer 啊。 用 hook 或者 advice 应该也能办到,只是个人觉得没有必要。

ivy-call

如果有ivy-hydra 打开ivy-hydra后默认绑定到g

ivy-call能预览,但没有实现楼主想要的自动预览。不过我倒觉得这种方式其实更好。

打开ivy之后,按C-c C-c (绑定到 ivy-toggle-calling), 然后 C-n C-p就自动预览了。

1 个赞

我这里似乎没有默认绑定,倒是ivy-hydra里默认绑定到c键

是我弄错了,这个是我自己绑定的……

我的设置是

:map counsel-ag-map
         ("<tab>" . ivy-call)

这样可以使用tab键预览,enter选中

感谢各位大咖的建议,我自己也尝试一下,没有找到好的自动预览方案。

可替代方案是绑定一个快捷键,绑定到 ivy-toggle-calling。 我现在使用 ivy-hydra,所以在查找之后,只需 C-o c 打开 calling 的开关,然后就可以自动预览了。

看了一下 ivy-toggle-calling 的代码,这个函数设置了一个 ivy-calling 的本地变量。应该是可以在唤起 counsel-ag(或者 ivy) 的时候用 hook 或某种方式先将 ivy-calling 设置为真值的,然后就可以开启自动预览了, 在论坛里也找到一个相似的帖子。 https://emacs-china.org/t/topic/5347,有兴趣的可以看看。

再次感谢,^_^。