ivy用户很多人切换buffer应该都是使用ivy-switch-buffer。但是ivy-switch-buffer在有很多相同名字的buffer被开启时会很尴尬(例如有多个README的情况下)。而counsel-ibuffer是一个使用ibuffer当作backend的命令,除了依照name排序之外也会显示major-mode以及path (而这两者也是可搜索的一部分),这样就算有相同名字的buffer被开启也可以利用path不同来区隔
这是去年二月的PR加入的command,不知道有多少朋友用过?详细情况可以参考
ivy.el (ivy-switch-buffer): Add option to display path #943
counsel.el: Add command counsel-ibuffer
一般情况下我用counsel-ibuffer取代了ivy-switch-buffer,需要将buffer分组的时候会直接使用ibuffer
2 个赞
P233
2
那 counsel-ibuffer 可以显示 recent files 吗? ivy-switch-buffer 默认显示吧
但是会慢很多。。。更多的功能可能会导致性能更差,如果只是同名文件问题,可以考虑开启 uniquify
(require 'uniquify)
(setq uniquify-buffer-name-style 'forward)
refer: autocomplete - Emacs: Switching Between Buffers with the Same Name but in Different Directories - Stack Overflow
1 个赞
功能越多速度肯定是越慢 ,不过在 UI 下这样信息查看更方便,个人觉得在可接受范围内。终端下速度是很快的,但肯定比默认慢些。
1 个赞
ivy-rich对我来说太overkill了。另外在counsel-ibuffer里路径,major mode等都是可被搜索的对象,但印象中ivy-rich里面这些资讯虽然有被显示出来却不能被搜索
cireu
8
Major Mode不能搜索啊。
ivy-rich的实现原理好像是基于ivy得display-transformer,而counsel-ibuffer好像是直接解析ibuffer
我指的是 ivy的内部机制都是一样的,具体从哪里取数据就不一定了。ivy-rich 是可以自定义的,搜索 major mode 也能办到。个人觉得搜索 major mode 还可以理解,搜索结果中还带 size 就不大合理了。
另外, ivy-rich 中默认 major mode 是带颜色的, counsel-ibuffer 是不行的。另外,counsel-ibuffer 无法加上 icon, 样式会错乱。优缺点自行斟酌吧~~