Discussion:
Time to consider/try Helm?
Jonathon McKitrick
2018-10-29 12:43:41 UTC
Permalink
I've been using emacs for nearly 20 years, and I try to update my packages and config regularly to improve usability and incorporate current development techniques.

I went from IDO a few years ago to counsel and swiper. I've been hearing a lot about Helm, and I'm wondering if it's a revolutionary leap I should try, or an evolutionary step that isn't worth relearning my habits around.

Does anyone have any similar experience with ido/counsel/helm?
Boris Buliga
2018-10-29 14:48:40 UTC
Permalink
Hi Jonathon,

For me it was a leap from ido to helm and then to ivy (counsel, swiper).
Not looking back at all.

But helm definitely worth giving it a try.
Post by Jonathon McKitrick
I've been using emacs for nearly 20 years, and I try to update my packages
and config regularly to improve usability and incorporate current
development techniques.
I went from IDO a few years ago to counsel and swiper. I've been hearing a
lot about Helm, and I'm wondering if it's a revolutionary leap I should
try, or an evolutionary step that isn't worth relearning my habits around.
Does anyone have any similar experience with ido/counsel/helm?
--
Cheers,
Boris
YUE Daian
2018-10-30 07:11:25 UTC
Permalink
Hi Boris,

For me it was from vanilla to ido to helm. Never looked back.

There are many debates of choosing helm or ivy. Their user experience
might be quite different. But both of them are far better than ido IMHO.

My suggestion is you may try both and see which you like.

As a helm user I would remind you that the behavior of <tab> can be
customized...

Danny
Post by Boris Buliga
Hi Jonathon,
For me it was a leap from ido to helm and then to ivy (counsel, swiper).
Not looking back at all.
But helm definitely worth giving it a try.
Post by Jonathon McKitrick
I've been using emacs for nearly 20 years, and I try to update my packages
and config regularly to improve usability and incorporate current
development techniques.
I went from IDO a few years ago to counsel and swiper. I've been hearing a
lot about Helm, and I'm wondering if it's a revolutionary leap I should
try, or an evolutionary step that isn't worth relearning my habits around.
Does anyone have any similar experience with ido/counsel/helm?
--
Cheers,
Boris
Marcin Borkowski
2018-10-30 08:19:47 UTC
Permalink
Post by YUE Daian
Hi Boris,
For me it was from vanilla to ido to helm. Never looked back.
There are many debates of choosing helm or ivy. Their user experience
might be quite different. But both of them are far better than ido IMHO.
Agreed (on the Ivy part, I've never tried helm).

My journey was vanilla -> Ido -> Icicles -> Ivy.

Icicles is hard/impossible to beat featurewise, but I found out that
I don't really need its power and that I prefer the simplicity of Ivy.

Best,

--
Marcin Borkowski
http://mbork.pl
Skip Montanaro
2018-10-30 09:21:11 UTC
Permalink
Post by Marcin Borkowski
My journey was vanilla -> Ido -> Icicles -> Ivy.
Completely naive question, but what do these packages provide? I've been
using Emacs for 30+ years and I've never heard of any of them. I guess I
need to get out more.

Skip Montanaro
YUE Daian
2018-10-30 10:19:55 UTC
Permalink
Post by Skip Montanaro
Post by Marcin Borkowski
My journey was vanilla -> Ido -> Icicles -> Ivy.
Completely naive question, but what do these packages provide? I've been
using Emacs for 30+ years and I've never heard of any of them. I guess I
need to get out more.
Skip Montanaro
These packages are "completion frameworks".

For example with helm, when you hit `M-x` and type something, it pops up
a buffer and list all possible matched commands, from which you may
select or do more actions.

The same process applies to other operations, including but not limited
to `C-x C-f`, `C-h v` etc etc.

Some helm extensions provides more interfaces for interacting with `ag`,
`locate` etc etc.

In a word, they change the way Emacs provides completion selections.

IMHO they are great packages that highly improve efficiency when you
need to search/query/complete anything inside Emacs.

Danny
Boris Buliga
2018-10-30 10:31:04 UTC
Permalink
In the nutshell, ivy and helm are both completion frameworks. What I like
about
them is the ability to create custom actions for completion target. Which
means
that when you do `C-x C-f` you can use `return` to visit a file, some other
key
binding to rename a file, to visit in a split buffer etc.

Since they both provide great completion and allow to define custom
actions, I
use them to create programs with ivy/helm as UI. In a lot of cases the most
important task of UI is to narrow down to the actions/targets.

In my sense, ivy is more compact and less intrusive than helm. But I highly
advice to try them both to make a decision.
Post by YUE Daian
Post by Skip Montanaro
Post by Marcin Borkowski
My journey was vanilla -> Ido -> Icicles -> Ivy.
Completely naive question, but what do these packages provide? I've been
using Emacs for 30+ years and I've never heard of any of them. I guess I
need to get out more.
Skip Montanaro
These packages are "completion frameworks".
For example with helm, when you hit `M-x` and type something, it pops up
a buffer and list all possible matched commands, from which you may
select or do more actions.
The same process applies to other operations, including but not limited
to `C-x C-f`, `C-h v` etc etc.
Some helm extensions provides more interfaces for interacting with `ag`,
`locate` etc etc.
In a word, they change the way Emacs provides completion selections.
IMHO they are great packages that highly improve efficiency when you
need to search/query/complete anything inside Emacs.
Danny
--
Cheers,
Boris
Eric S Fraga
2018-10-30 14:41:18 UTC
Permalink
Post by Skip Montanaro
Post by Marcin Borkowski
My journey was vanilla -> Ido -> Icicles -> Ivy.
Completely naive question, but what do these packages provide? I've been
using Emacs for 30+ years and I've never heard of any of them. I guess I
need to get out more.
if it's any consolation, I've also been using Emacs for 30+ years and I've only managed to get to ido so far... ;-)

Orthogonal to these but very useful, by the way, is smex [1].

eric

Footnotes:
[1] https://www.emacswiki.org/emacs/Smex
--
Eric S Fraga via Emacs 27.0.50 & org 9.1.13 on Debian buster/sid
Boris Buliga
2018-10-30 14:47:48 UTC
Permalink
Eric,

Thank you for reminding me about smex! I've used it for some time and I
remember
being happy with it. I think I've stopped using it once I've installed helm.
Post by Eric S Fraga
Post by Skip Montanaro
Post by Marcin Borkowski
My journey was vanilla -> Ido -> Icicles -> Ivy.
Completely naive question, but what do these packages provide? I've been
using Emacs for 30+ years and I've never heard of any of them. I guess I
need to get out more.
if it's any consolation, I've also been using Emacs for 30+ years and I've
only managed to get to ido so far... ;-)
Orthogonal to these but very useful, by the way, is smex [1].
eric
[1] https://www.emacswiki.org/emacs/Smex
--
Eric S Fraga via Emacs 27.0.50 & org 9.1.13 on Debian buster/sid
--
Cheers,
Boris
Óscar Fuentes
2018-10-30 14:47:54 UTC
Permalink
Post by Eric S Fraga
Post by Skip Montanaro
Post by Marcin Borkowski
My journey was vanilla -> Ido -> Icicles -> Ivy.
Completely naive question, but what do these packages provide? I've been
using Emacs for 30+ years and I've never heard of any of them. I guess I
need to get out more.
if it's any consolation, I've also been using Emacs for 30+ years and
I've only managed to get to ido so far... ;-)
I tried Ivy and didn't convince me. Possibly because my Ido setup is
quite evolved (flx matching is great).

Ivy showing the list of candidates as one column didn't help. While
using it, I was asking myself "where is the improvement?" and found no
obvious answer.
Ben Bacarisse
2018-10-30 18:11:00 UTC
Permalink
Post by Eric S Fraga
Post by Skip Montanaro
Post by Marcin Borkowski
My journey was vanilla -> Ido -> Icicles -> Ivy.
Completely naive question, but what do these packages provide? I've been
using Emacs for 30+ years and I've never heard of any of them. I guess I
need to get out more.
if it's any consolation, I've also been using Emacs for 30+ years and
I've only managed to get to ido so far... ;-)
I'm not quite up to 30 years (not much off, mind) but I keep trying
these sorts of thing and I keep going back to the default.

In part it's just muscle memory. I just tried Ivy again and can't stop
myself from hitting TAB TAB which "acts on" an item in Ivy. I kept
loading executable files like "program" rather than "program.c". I
think these more sophisticated frameworks would benefit from a set of
"compatibility" key binding and definitions so that you could go step by
step trying out the new parts without getting frustrated by old habits.

Mind you I got further this time... Last time I got frustrated by my
habit of using M-x <up> to get the last (and other previous) commands.
But this time I read enough of the documentation to find that M-p does
that in Ivy's mini buffer. Still going to be hitting <up> a lot but at
least that does not execute any action that I might not want.

Maybe this time I'll stick it out...
--
Ben.
Eric S Fraga
2018-10-31 10:38:03 UTC
Permalink
Post by Ben Bacarisse
I'm not quite up to 30 years (not much off, mind) but I keep trying
these sorts of thing and I keep going back to the default.
In part it's just muscle memory.
Yes, muscle memory can sometimes make it difficult to adopt new
features/packages. Takes extra perseverance but it is difficult to
assess the benefits. I still have some problems with ido for this
reason, despite using ido for some years now.
--
Eric S Fraga via Emacs 27.0.50 & org 9.1.13 on Debian 9.5
Rémi Letot
2018-10-30 22:19:59 UTC
Permalink
Post by YUE Daian
Hi Boris,
For me it was from vanilla to ido to helm. Never looked back.
There are many debates of choosing helm or ivy. Their user experience
might be quite different. But both of them are far better than ido IMHO.
Could you please elaborate a bit on that ?

Thanks,
--
Rémi
Vladimir Sedach
2018-10-30 06:48:02 UTC
Permalink
Post by Jonathon McKitrick
Does anyone have any similar experience with ido/counsel/helm?
You don't have to use just one. For example, I use ido for file and
buffer operations, and counsel/ivy for shell history, kill ring,
imenu, bookmarks, etc. Planning to investigate Helm when I have the
time to see if there is anything I like there.

Vladimir
YUE Daian
2018-10-31 04:14:13 UTC
Permalink
Post by Rémi Letot
Post by YUE Daian
Hi Boris,
For me it was from vanilla to ido to helm. Never looked back.
There are many debates of choosing helm or ivy. Their user experience
might be quite different. But both of them are far better than ido
IMHO.
Could you please elaborate a bit on that ?
Thanks,
--
Rémi
Hi Remi,

Sorry for not being able to type the accent ;-)

I am not really familiar with ivy so please let me talk about helm.

Let's take buffer management as an example.

With ido you have `ido-switch-buffer`, `ido-kill-buffer` etc for
different purposes.

But with helm, when you use `helm-buffer-list`, it pops up a buffer,
which displays all opened and recently used buffers.

You can type anything in the mini-buffer to perform fuzzy-search and the
buffer list will be filtered.

You can mark items in the list and perform actions on them, for example
kill buffer, query replace, grep etc etc.
These actions are customizable thus can be added more.

Also packages like helm can be used as a front-end for many other tools,
such as ag (great enhancement of grep, highly recommended), projectile
etc etc.

I think the biggest change helm brings is that it uses buffer instead of
mini-buffer to display its results.

Hope that helps.

Danny
Eric S Fraga
2018-10-31 10:34:45 UTC
Permalink
Post by YUE Daian
Rémi
Hi Remi,
Sorry for not being able to type the accent ;-)
Given that this is an Emacs list: "C-x 8 ' e" should do the job! (many
other ways, of course, this being Emacs...)

But, then again, you might not be using Emacs for email... shame on you
if so. ;-)
--
Eric S Fraga via Emacs 27.0.50 & org 9.1.13 on Debian 9.5
Marcin Borkowski
2018-10-31 10:57:40 UTC
Permalink
Post by Eric S Fraga
Post by YUE Daian
Rémi
Hi Remi,
Sorry for not being able to type the accent ;-)
Given that this is an Emacs list: "C-x 8 ' e" should do the job! (many
other ways, of course, this being Emacs...)
Or just \'e with TeX-input-method turned on.

Just my 2cents,
--
Marcin Borkowski
http://mbork.pl
Eric S Fraga
2018-10-31 12:17:41 UTC
Permalink
Post by Marcin Borkowski
Or just \'e with TeX-input-method turned on.
Or even just "e'" with one of the latin language postfix modes or "'e"
with the equivalent prefix modes... So many ways!

(I actually have my message mode buffers in spanish-prefix mode by
default as it doesn't get in the way for English but yet provides such
easy access to accents.)

I love Emacs!

And that's it for me on this off-topic conversation. ;-)
--
Eric S Fraga via Emacs 27.0.50 & org 9.1.11 on Debian buster/sid
YUE Daian
2018-10-31 11:08:57 UTC
Permalink
Post by Eric S Fraga
Post by YUE Daian
Rémi
Hi Remi,
Sorry for not being able to type the accent ;-)
Given that this is an Emacs list: "C-x 8 ' e" should do the job! (many
other ways, of course, this being Emacs...)
But, then again, you might not be using Emacs for email... shame on you
if so. ;-)
--
Eric S Fraga via Emacs 27.0.50 & org 9.1.13 on Debian 9.5
Hi Rémi,

Wow, I never knew that...Thank you teacher ;-)

Actually I am using notmuch inside Emacs.
Before notmuch I tried Rmail, Mew, Gnus, Mu4e...

Why do you think so?

Danny
Marcin Borkowski
2018-10-31 10:59:27 UTC
Permalink
Post by YUE Daian
Post by Rémi Letot
Post by YUE Daian
Hi Boris,
For me it was from vanilla to ido to helm. Never looked back.
There are many debates of choosing helm or ivy. Their user experience
might be quite different. But both of them are far better than ido IMHO.
Could you please elaborate a bit on that ?
Thanks,
--
Rémi
Hi Remi,
Sorry for not being able to type the accent ;-)
I am not really familiar with ivy so please let me talk about helm.
Let's take buffer management as an example.
With ido you have `ido-switch-buffer`, `ido-kill-buffer` etc for
different purposes.
But with helm, when you use `helm-buffer-list`, it pops up a buffer,
which displays all opened and recently used buffers.
You can type anything in the mini-buffer to perform fuzzy-search and the
buffer list will be filtered.
You can mark items in the list and perform actions on them, for example
kill buffer, query replace, grep etc etc.
These actions are customizable thus can be added more.
Also packages like helm can be used as a front-end for many other tools,
such as ag (great enhancement of grep, highly recommended), projectile
etc etc.
Ivy can do these things, too.
Post by YUE Daian
I think the biggest change helm brings is that it uses buffer instead of
mini-buffer to display its results.
How is that beneficial? (I don't claim it isn't - I just don't know
what are the pluses.)

Best,
--
Marcin Borkowski
http://mbork.pl
YUE Daian
2018-10-31 11:23:56 UTC
Permalink
Post by Marcin Borkowski
Post by YUE Daian
Post by Rémi Letot
Post by YUE Daian
Hi Boris,
For me it was from vanilla to ido to helm. Never looked back.
There are many debates of choosing helm or ivy. Their user experience
might be quite different. But both of them are far better than ido IMHO.
Could you please elaborate a bit on that ?
Thanks,
--
Rémi
Hi Remi,
Sorry for not being able to type the accent ;-)
I am not really familiar with ivy so please let me talk about helm.
Let's take buffer management as an example.
With ido you have `ido-switch-buffer`, `ido-kill-buffer` etc for
different purposes.
But with helm, when you use `helm-buffer-list`, it pops up a buffer,
which displays all opened and recently used buffers.
You can type anything in the mini-buffer to perform fuzzy-search and the
buffer list will be filtered.
You can mark items in the list and perform actions on them, for example
kill buffer, query replace, grep etc etc.
These actions are customizable thus can be added more.
Also packages like helm can be used as a front-end for many other tools,
such as ag (great enhancement of grep, highly recommended), projectile
etc etc.
Ivy can do these things, too.
Sure. And dramatically after I tried Ivy since yesterday, I have already
uninstalled helm...

Thank you guys, for helping me find a new tool that suits my taste more.
Post by Marcin Borkowski
Post by YUE Daian
I think the biggest change helm brings is that it uses buffer instead of
mini-buffer to display its results.
How is that beneficial? (I don't claim it isn't - I just don't know
what are the pluses.)
Here "change" is a neutral word.

Some people like it, some people don't.

Some people say that using an individual buffer may display more
information, such as file size, directory etc for buffer list.

IMHO most information is not really needed (by me).

So personally I could accept it, but I don't miss it after switching to
Ivy.


Danny
Rémi Letot
2018-10-31 19:03:45 UTC
Permalink
Post by YUE Daian
Post by Marcin Borkowski
Post by YUE Daian
Hi Remi,
Sorry for not being able to type the accent ;-)
no problem, now you can :-)

[...]
Post by YUE Daian
Post by Marcin Borkowski
Ivy can do these things, too.
Sure. And dramatically after I tried Ivy since yesterday, I have already
uninstalled helm...
ok so time to try ivy I guess :-)

Thanks all for that enlightening discussion,
--
Rémi
Boris Buliga
2018-10-31 19:08:35 UTC
Permalink
Hi everyone,

It worth mentioning that there is a great manual for ivy[1].

I highly recommend to read it, even if you are a seasoned ivy user.

[1]: https://oremacs.com/swiper/
Post by Rémi Letot
Post by YUE Daian
Post by Marcin Borkowski
Post by YUE Daian
Hi Remi,
Sorry for not being able to type the accent ;-)
no problem, now you can :-)
[...]
Post by YUE Daian
Post by Marcin Borkowski
Ivy can do these things, too.
Sure. And dramatically after I tried Ivy since yesterday, I have already
uninstalled helm...
ok so time to try ivy I guess :-)
Thanks all for that enlightening discussion,
--
Rémi
--
Cheers,
Boris
Marcin Borkowski
2018-11-01 19:27:10 UTC
Permalink
Post by YUE Daian
Post by Marcin Borkowski
Ivy can do these things, too.
Sure. And dramatically after I tried Ivy since yesterday, I have already
uninstalled helm...
Wow, that escalated quickly.
Post by YUE Daian
Thank you guys, for helping me find a new tool that suits my taste more.
As someone who used both Helm and Ivy, could you summarize the key
differences? I don't think I'm going to switch to Helm;-), but I'm just
curious.
Post by YUE Daian
Post by Marcin Borkowski
Post by YUE Daian
I think the biggest change helm brings is that it uses buffer instead of
mini-buffer to display its results.
How is that beneficial? (I don't claim it isn't - I just don't know
what are the pluses.)
Here "change" is a neutral word.
Some people like it, some people don't.
Some people say that using an individual buffer may display more
information, such as file size, directory etc for buffer list.
IMHO most information is not really needed (by me).
So personally I could accept it, but I don't miss it after switching to
Ivy.
I see.

Thanks,
--
Marcin Borkowski
http://mbork.pl
Neal Becker
2018-11-03 14:09:59 UTC
Permalink
Post by Marcin Borkowski
Post by YUE Daian
Post by Marcin Borkowski
Ivy can do these things, too.
Sure. And dramatically after I tried Ivy since yesterday, I have already
uninstalled helm...
Wow, that escalated quickly.
Post by YUE Daian
Thank you guys, for helping me find a new tool that suits my taste more.
As someone who used both Helm and Ivy, could you summarize the key
differences? I don't think I'm going to switch to Helm;-), but I'm just
curious.
Post by YUE Daian
Post by Marcin Borkowski
Post by YUE Daian
I think the biggest change helm brings is that it uses buffer instead
of mini-buffer to display its results.
How is that beneficial? (I don't claim it isn't - I just don't know
what are the pluses.)
Here "change" is a neutral word.
Some people like it, some people don't.
Some people say that using an individual buffer may display more
information, such as file size, directory etc for buffer list.
IMHO most information is not really needed (by me).
So personally I could accept it, but I don't miss it after switching to
Ivy.
I see.
Thanks,
I have't tried recently, but had played with helm, ivy, etc while trying
spacemacs. As someone who's used emacs for maybe 30+ years and has lots of
muscle memory, I found them all unacceptable. The issue is that I often
want to get a completion and then edit it. Maybe rename a file to a similar
name but then change some characters. I found it difficult/impossible to
use the emacs editing I'm used to on completions. One of these addons even
had the nerve to rebind the arrow keys to not move the cursor! This is a
criminal act :)

YUE Daian
2018-11-02 03:55:43 UTC
Permalink
Post by Marcin Borkowski
Post by YUE Daian
Post by Marcin Borkowski
Ivy can do these things, too.
Sure. And dramatically after I tried Ivy since yesterday, I have already
uninstalled helm...
Wow, that escalated quickly.
You know, since everyone here recommends Ivy I was really curious about
it. And after trying it I think it is really good :-D
Post by Marcin Borkowski
Post by YUE Daian
Thank you guys, for helping me find a new tool that suits my taste more.
As someone who used both Helm and Ivy, could you summarize the key
differences? I don't think I'm going to switch to Helm;-), but I'm just
curious.
Sure.

Both are excellent and I think the choice between them more likes
personal taste.

- Complexity. Helm defines a set of operation logic while Ivy completes
your habit in Emacs life. For example by default <tab> is used as
invoke-action instead of performing completion in Helm. You have to
configure much to make it behave in the way you like.

- Helm is more integrated. It contains literally every single bit of
Emacs functions, e.g. calculator. On the contrary Ivy is more
distributed thus feels more light-weight. IMO it is really funny to
integrate calculator in Helm.

- Helm uses buffer to display its information, while Ivy uses
mini-buffer. This may lead to very different experience. Sometimes C-g
cannot fully quit current operation in Helm because the usage of
window. This problem never happens in my (limited) Ivy life.

- Speed. My brief feeling is that Helm is slower most of the time, but
helm-ag rocks counsel-ag really hard. Also when dealing with very
large repo, helm-projectile is far more faster than
counsel-projectile. But maybe it is because I am using wrong regex
engine, I am not sure.

These are just some most significant feelings I have after switched to
Ivy. I believe there are more along with my Ivy life...
Post by Marcin Borkowski
Post by YUE Daian
Post by Marcin Borkowski
Post by YUE Daian
I think the biggest change helm brings is that it uses buffer instead of
mini-buffer to display its results.
How is that beneficial? (I don't claim it isn't - I just don't know
what are the pluses.)
Here "change" is a neutral word.
Some people like it, some people don't.
Some people say that using an individual buffer may display more
information, such as file size, directory etc for buffer list.
IMHO most information is not really needed (by me).
So personally I could accept it, but I don't miss it after switching to
Ivy.
I see.
Thanks,
--
Marcin Borkowski
http://mbork.pl
Loading...