I know that setting ivy-use-virtual-buffers leads to recently opened files being shown in the ivy-switch-buffer completion. However, I don't want this.

What I want is a separate function for opening recent files. When I invoke recentf-open-file, I want the ivy completion for recent files, instead of the clunky recentf menu.

Doom Emacs provides a neat implementation of this, but I can't seem to find a way to do this in vanilla Emacs. Do I have to write my own function for this? This seems redundant considering the fact that ivy already has the mechanism to do this.


1 Answer 1


You're looking for counsel-recentf, which comes with counsel.

Just M-x counsel-recentf or bind it to any keys you'd like and that's all you're looking for.

Loosely speaking Ivy is the completion backend, counsel provides functionality to use ivy "replacing" some popular commands with ivy-style completion.

  • Thanks, I've discovered crux-recentf-find-file and checked the source code. This function is easy to implement using completing-read and recentf-list.
    – sixter
    May 17, 2020 at 13:10
  • Chances are that if you installed ivy also did it with basic counsel.
    – Muihlinn
    May 17, 2020 at 13:21

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.