Helm features buffer navigation that is more powerful than ido but apparently has a bit of a learning curve. Say I want to open a file in


And my mini buffer currently reads

Find files or Url: ~/java/com

The helm buffer list will not let me <TAB> for completion like in ido. <RETURN> will open the buffer list, which is also not what I want. However to select the directory I must hit the right arrow key which requires leaving the home keys on my keyboard and is therefore very slow.

Per answer below C-j or C-z is the answer I'm looking for. However at that point it's still very hard to navigate, as Helm will default to ./ as the directory listed, i.e.:

  1. Go to helm-find-files
  2. Pick any directory
  3. After you are taken to the next file list, the entry highlighted in "green" will be the_directory/.

This means if you type C-j again it will "take" you to exactly where you are. This contrasts with ido, where hitting <RETURN> a few times will auto-complete out using logic (I think just "last picked directory") to determine which directory should be default.

Therefore I must always type C-n twice or type the first letter of the directory. It certainly doesn't "fly" like ido-mode does, so this is still too unusable for me. Is there a hack for this as well?

  • 1
    You should be able to hit C-z (helm-execute-persistent-action) for completion in the same manner that you want to hit TAB. I swapped these two keys as @tuhdo recommends in his popular helm guide.
    – nanny
    Apr 6, 2015 at 16:52
  • @nanny I saw that in the guide but didn't really understand what a "persistent action" is. I guess it does this, for one.
    – djechlin
    Apr 6, 2015 at 16:53
  • 1
    Others answered your question but my guide could make Helm more enjoyable for you. Use my sample config in the guide for TAB to go in directory.
    – Tu Do
    Apr 6, 2015 at 18:50
  • @TuDo ah, that's yours, great job. I followed the below answer but it still didn't completely solve my problem, see edit.
    – djechlin
    Apr 6, 2015 at 19:32
  • @TuDo: That guide is sweet, it's what got me to start using helm in the first place. Apr 6, 2015 at 19:41

3 Answers 3


C-c ? is your friend when it comes to Helm for context dependent help. So hit that when you're in helm-find-files, and it will tell you that C-j will expand to a file (or directory) name. When the candidate directory you want is highlighted, hit C-j and continue your travels from that directory, like you woud with return in ido.

Further, C-l will remove the current directory/file name, allowing for new input.

  • Thanks! This is good but didn't fully solve my problem, see edit.
    – djechlin
    Apr 6, 2015 at 19:32
  • @djechlin: Not sure I understand what you mean, maybe C-l is what you're looking for? Apr 6, 2015 at 19:37
  • Not that; see edit again.
    – djechlin
    Apr 6, 2015 at 19:44

I found two solutions to this problem:

  • Use helm-find instead, which, as in unix find, will search recursively.
  • Use helm-projectile with projectile instead.
  • Using helm-find with a prefix argument (C-u C-x c / on my system) is exactly what I was looking for. The prefix argument makes helm-find prompt for where to start the search from. Note that the pattern you type using find -name pattern syntax. I'm already using projectile, but I want something that supports quick finding when I'm not inside a projectile project.
    – ntc2
    Dec 24, 2018 at 20:37

It might not be the "Helm" way, but I will argue that executing the first action with TAB instead of C-z is easier for my brain and hands. This is more evident when I want to traverse long directory structures.

As such, I recommend rebinding C-z to Tab and viceversa. I have this in my config:

(define-key helm-map (kbd "<tab>") 'helm-execute-persistent-action) ; rebind tab to do persistent action
(define-key helm-map (kbd "C-i") 'helm-execute-persistent-action) ; make TAB works in terminal
(define-key helm-map (kbd "C-z")  'helm-select-action) ; list actions using C-z

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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