I am new to Emacs. When I started using it 2 months ago, a co-worker suggested using helm which definitely improved my use of Emacs.

In addition, I have been slowly reading the book Mastering Emacs, by Mickey Petersen. At the beginning of the book, the author emphatically endorses using ido-mode. So, I installed it and I have been using it for the last 2 weeks. Since I have not uninstalled helm, I have been using both packages ido-modeand helm simultaneously.

1 - Is there a feature/functionality overlap between those packages? What is it? Or are they perfectly complementary?

2 - Aside from subjective opinions, is there any technical reason to make this a bad "design" choice for one's configuration?

  • 1
    Helm is powerful compare to ido mode. it's really extended and works with different tools like ag, ack etc etc. I am also using both of them. for example ido-find-file is really simple and does its job well. IMO there is not any problem to use them together. Aug 4 at 11:56
  • 1
    Mastering Emacs is a good book. In fact, it's the only non-official emacs related piece of writing I find worth reading. I'll leave an odd piece of advice: understand the built-in minibuffer capabilities of Emacs (read (info "(emacs) Minibuffer")). When you'll understand it, you'll see it puts to shame any of the "cool" completion packages. I don't use company, ido, helm, or any of those (but I have used in the past). Icomplete comes with emacs and it's extremely good. It improves the minibuffer experience a tiny bit.
    – aadcg
    Aug 5 at 12:04

Question 1: Helm provides all the functions that ido does. You can use helm to find files, switch buffers, or do anything else that ido is used for. In addition, Helm can do a lot more, both in the main package and with extensions that use the helm framework.

Question 2: it's really up to you. I haven't used ido in a while, but I mix Ivy and Helm. I like Ivy for most things, but there are some functions in helm that I find superior. There's no objective technical reason not to mix and match. The only issue I have run into is getting a little confused myself when I try to use the ivy keybindings in helm or vice versa. But I don't think using one will break the other, or impact how ido works. You might need to put some time into your keyboard shortcuts, since ido and ivy both have global modes that take over the defaults for find-file. I don't think Helm does, but it's been a while since I used it.


1, ido-compleing-read can only select from string list. helm supports Emacs builtin API completing-read. Here is completing-read documentation.

enter image description here

So helm is more powerful.

  1. ido and helm are bit old. New users can start from counsel/ivy/swiper (https://github.com/abo-abo/swiper). These days many experienced Emacs users prefer more "modern" completion frameworks, See https://www.libhunt.com/r/icomplete-vertical for the list. Ivy and these new frameworks also support completing-read.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.