看到以上一个帖子一个视频,决定折腾一下,替换掉我的ivy . 虽然ivy提供的功能我很喜欢。 但觉得它的api设计的实在是烂,以后的发展不是很看好,所以决定把它换掉。
总结下下 目前Icomplete-mode 让我不爽的有两点
- 不支持空格分隔关键词,目前借助 Any plan to implement completion style · Issue #54 · radian-software/prescient.el · GitHub 可以实现,但是高亮的处理我不知道怎么解决,提了个issue 看看后续什么情况,另外提一下prescient.el 是selectrum-mode也使用prescient.el 进行过滤筛选) 不过Icomplete-mode 目前已经支持flex/fuzzy方式的过滤,喜欢flex/fuzzy方式的可以无视这一条。
- "{"之前的promp及输入的内容在candidates比较多的时候会被隐藏掉,尤其是竖着展示的时候,这个很烦人.
selectrum-mode
优点是
- 支持helm/ivy那种按空格分词后再匹配的算法
- 代码优雅简洁
- 运行candidates为多行的情况,(这点一开始以为它不支持,见 Issues · radian-software/selectrum · GitHub
mini-frame 则是将minibuffer放到一个单独的frame进行展示,目前来看还是挺好用的。
成果在这里 vmacs/conf-minibuffer.el at master · jixiuf/vmacs · GitHub
使用rg.el 主要是替代counsel-rg 命令,文档很全,功能也很强大,我之前对counsel-rg命令做过魔改,主要支持以下功能,目前来看使用rg.el都实现了。
- 可以在当前路径进行搜索
- 在git 根目录进行搜索,
- 支持wgrep/iedit
- 在保存的occur buffer后,支持继续进行过滤(隐藏匹配的行,只显示匹配的行,类型于 rg .|grep hello |grep -v world 成果在这果 vmacs/conf-rg.el at master · jixiuf/vmacs · GitHub
附上3个库的链接 ,Icomplete-mode 是emacs自带的