各位emacs中用ivy还是helm的?

比较喜欢ivy简单的风格

但我翻了一下spacemacs的配置,发现helm有各种各样的后缀的包,而ivy且需要和counsel配合且也有对helm的依赖,可见其功能并不完善

难道我理解错ivy的功能定位了?

1赞

我怎么感觉现在各种配置都大有倒向helm的趋势……

不过我会一直使用ivy……因为我很反感helm的side-window模式……

配置是很个人的东西, 用哪个很大程度是喜好问题。。。。

ivy counsel swiper 本质上可以算是一个包。。

有对helm的依赖说明那个插件的作者偷懒了。。用了helm包里的function。。我现在就完全没装helm。。

我用IVY 因为感觉比helm速度快一些

ivy感觉快一些,helm感觉功能更全,确实比较蛋疼

我不用 helm 是因为:

  1. 它的前身 anything 给我带来不好的体验
  2. emacs的 window 灵活的过头, 老感觉它不太靠谱

ivy, helm不好看,而且样式和布局太艳丽了,会吸引我注意力


补充一点,可能是因为和我用的主题有点不搭配

我用 helm。

尽管我可以说出 helm 一堆问题:

  • 慢。虽然现在已经有了大幅改进,但还是比 ivy 慢,详情可参考这个 helm/issue#1393,以及跑一跑我在里边提供的两个一键测试脚本
  • helm-swoop 在多窗口的情况下有问题,这个也许不能算 helm-core 的锅
  • helm 跟 lsp-ui 存在奇怪的冲突:lsp-ui/issue#33

但其依然相对比较完善、成体系的。

主要是速度,我以前windows下用helm,弹出需要0.5s,ivy感受不到延迟。

ivy常用的都有了,spacemacs develop,我选ivy,要用的都有。

老实说,我感觉我在别的帖子里作过一模一样的回复。。

尴尬,那您有试过 ido 吗?我在spacemacs的配中(spacemacs-completion)还看到了这个东西,但是似乎只有 spacemacs 的 core 使用这个。

ivy速度比较快,helm相对完善些。如果要更简洁选择ido,均衡的话还是选择ivy好啦,你不会后悔。

helm,之前折腾了几天的ivy,又回到helm了 helm与ivy简单对比

十分希望ivy能够支持更多的fzf功能,fuzzy find还是好用啊,这点上比不上vim。。

ido已经是emacs自带了,比ivy helm更简洁/简陋吧。

有一个counsel-fzf,不过是调用fzf

ivy. Spacemacs里helm的配置太复杂看不懂……

一直没明白 fzf 在终端怎么用的,比如:

⋊> echo "foo
bar
qux" | fzf # 选择 foo,回车
foo        # <-- 结果输出
⋊>         # <-- 光标位置

虽然输出了 foo,但是光标已经在下一行了。想要使用过滤的结果:

  1. 从屏幕上拷贝结果,粘贴到新的命令行
  2. 命令组合,比如: ps aux | fzf | awk '{print $2}' | xargs kill,稍嫌繁琐

另一问题是太过于 fuzzy,以至于为了得到正确输出,需要敲更多的键:

⋊> echo "foobar
foboar
fboaor" | fzf # 输入 foo 过滤,
              # 候选列表无变化

第二个确实是这样,但是应该是会有优先级,fuzzy find支持颠倒顺序,检索时也一定不需要添加空格之类的。

echo "foo bar
bar foo
barfoo" | fzf
#输入barfoo,候选列表里第一个是barfoo,第二个是bar foo
#输入bar foo,第一个是foo bar,第二个是bar foo, 第三个是barfoo

echo "bar foo
foo bar
barfoo" | fzf
#输入bar foo,第一个是bar foo, 第二个是foo bar,第三个是barfoo

可见跟检索的先后顺序也有关。

总体体验还是比较优秀的吧,多一些冗余的优先级比较低的search candidates并无太大碍吧。

我放棄 Helm 是因爲

  1. M-:等minibuffer操作無法補全,Helm help "Cannot make side window the only window",可能和spacemacs覆蓋的某個display-buffer-*變量有關
  2. 一段時間後,Helm buffer 裏上下移動光標,helm-selection-overlay不會跟着動。沒搞清楚怎麼修已經爲什麼會這樣,可能是某個hook導致光標移動失敗