12

I'm an avid helm user and am reading the description for icicles. It includes things like:

cycle through completion candidates that match your current input *

which sounds weaker to me than seeing the entire list of matches in helm (since I'm willing to have a buffer open up like that)

use a pattern to match completion candidates, including:

which is exactly a Helm feature, etc.

So Icicles sounds like a good package but it seems to be a direct competitor to Helm, and in exploring Icicles, I haven't found a reason to install it given that I have Helm. What features might I be missing?

djechlin
  • 923
  • 8
  • 21
  • 1
    I'm also an avid helm user and tried icicles before I settled on helm. I only used it for a short while, but IMHO, icicles is more complicated to use for simple things than helm though it allows one to perform some complex tasks that are not possible in helm. Icicles also changes many default key bindings including C-s which I did not like. Personally, I prefer C-s and many other key bindings to stay as is since often I do not need the power of icicles or helm. – Qudit May 03 '15 at 17:32
  • 1
    @Qudit: No, Icicles does **not** change the binding of `C-s` from Isearch. And Icicles does not touch existing bindings used during Isearch. (Well, starting in Emacs 24.3 Emacs decided to also use `C-M-i` for completion, like Icicles has for years. You can remove the Icicles `C-M-i` binding by customizing option `icicle-isearch-complete-keys`.) And any other bindings that Icicles provides by default are easily removed. Customizing option `icicle-top-level-keybindings` to `nil`, for instance, means that **no** top-level key bindings are changed when you turn on `icicle-mode`. – Drew May 03 '15 at 22:22
  • 1
    @Drew Maybe it's changed. I haven't tried it for a while. – Qudit May 03 '15 at 22:25
  • 1
    @Qudit: No, Icicles has never bound `C-s`. Its effect on Isearch has always been what I just described. It is described further [here](http://www.emacswiki.org/emacs/Icicles_-_Isearch_Enhancements). – Drew May 03 '15 at 22:28

1 Answers1

12

A good answer would be quite long. The short answer is yes. Each of Helm and Icicles offers features not offered by the other.

They are not necessarily alternatives/competitors. You can use both.

Wrt your question about matching candidates, there is no difference wrt showing all candidates. IOW, Icicles too will show all candidates anytime you like (including initially, without hitting any keys). "candidates that match your current input" is completely general, and includes the case of your input being empty, which means all candidates are included.

Here is a high-level list of the most important Icicles features. Some of these have also been added progressively to Helm over the years, if in a different form. Other answers to your question might help more wrt what Helm offers.

FWIW, I seriously doubt that a discussion of what you can or cannot do with each of these packages is useful here. My suggestion, if you are interested in exploring Icicles, would be to try it.

But just as using Helm benefits from (or implies or requires) a different mental model (mindset) from using vanilla Emacs, so does using Icicles. To try Icicles or Helm, it is helpful to try to do things the Icicles way or the Helm way, respectively.

Icicles is not Helm, and Helm is not Icicles. Neither tries to be the other. Expecting to use one the same way you use the other would (a) likely be disappointing and (b) make you miss a lot (including the point of the design). It's a bit like an "avid" vi user taking a look at Emacs (or an Emacs user taking a look at vi). If you really want to check it out then try to get into its approach/POV, instead of asking how to reproduce a particular behavior or effect you are used to and are "avid" about.

Deciding to take a look at Icicles based only on a feature-list comparison with Helm would take the fun out of learning Icicles, IMHO. It's kind of like learning a new math subject: you just have to go with the flow of Let x..., to give it the benefit of the doubt. See what happens next and subsequently discover why it might be interesting and what you can do with it. If your attitude from the outset is "What good is linear algebra (or group theory or...)?" then I'd say don't bother - it might not be any good to you at all.

Drew
  • 75,699
  • 9
  • 109
  • 225
  • 3
    It sounds like I can be a full fledged editor just using Helm without touching Icicles. Sort of how like emacs users never touch vi :) so it's good to hear the perspective that they're both useful and different but it sounds like they probably accomplish enough of the same goals that installing and mastering both is unnecessary. – djechlin May 03 '15 at 20:36
  • 1
    @djechlin I don't think that was the point of the answer. More that the different approaches cannot be easily explained to someone coming from one or the other backgrounds, and you should just try both with an open mind to get a sense of each paradigm and what works best for you. – mindthief Dec 01 '20 at 21:11