排版好乱啊, 这种格式该怎么排版?
1
counsel-ag error message · Issue #1287 · abo-abo/swiper · GitHub, 也不是完全没法解决, 只不过解决方法比较野蛮. 同时我在helm目录里搜了一下icomplete, 没有结果, 看上去helm跟它井水不犯河水, 没有影响.
2
可能跟个人习惯有关, 我看到那么大的minibuf有种不适感, 简单点说, 有点像把一个窗口的标题栏变成了半个屏幕那么高, 然后在里面显示了很多有用信息, 心理上感觉很憋得慌. 我是希望如果有足够多的信息要展现, 就用独立的窗口或者frame, 否则会有压抑感.
单独窗口显示和frame显示, helm内部都支持了, 所以不需要扩展就可以使用.
另外, 关于emacs本身的习惯问题, 对我来说, 还是前面那句: 输入时, 少量辅助信息可以在minibuf里展示, 如果有足够多的信息要展现, 就用独立的窗口或者frame. 比如内置的icomplete和ido, 默认不显示太多内容, 也不占多大地方, 而当信息很多时就用其他窗口来展现, 比如icomplete或ido补全时按tab, 会单独开一个窗口显示所有补全项. 至于ido-vertical, 没有集成到emacs里, 用的人也不多, 算不上emacs的经典使用习惯吧?
helm还是用minibuf来输入的, 这个体验没变, 它同时把大量的辅助的预览信息用其他窗口显示, 我感觉这个操作很自然. 对于ivy, 其swiper命令也用了类似的模式, 一边在minibuf输入, 同时在其他窗口里显示预览信息, 但是它在minibuf里显示的信息太多了.
3
我说的headline不是emacs自身的headline, 而是在helm结果里, 分割多个后端结果集的那个line. 比如helm有个类似helm-buffer-and-recentf(实际不是这个名字), 效果是, 一部分结果是来自buffer list, 另一部分是来自recentf, 它会在结果集里把两部分明确分开, 每个结果集前面会有个类似headline的东西, 该line高度比正常文字大1号(单独的face可定制), 其文字内容就是当前的后端名字或简要说明. 只有一个后端的时候, 也会显示该line(应该也可以选择隐藏). 我感觉这个界面直观得不行, 比较喜欢.
说到多后端, 此时结果会很多, 独立窗口才能显示更多的内容, 而minibuf地方有限, 当然, 可以让它更大, 但是别扭.
4
helm也是有类似于transformer的东西, 自己写的补全函数可以自己实现transformer. 其优势是, helm自带的大部分命令都已经实现了该transformer, 不需要自己定制就有了.
分析下来, 不知道你说的哪些用ivy很好扩展, 而helm不行的, 看上去helm不需要扩展就有了这些功能.
我不认为ido+vertical符合原生Emacs本身的逻辑和习惯, 原因见第2点.
没想到写了这么多, 这两个东西都挺优秀, 感觉好像在鸡蛋里挑骨头, 选择多了, 就开始精挑细选矫情了, 哈哈.