How do I get list of recent files in GNU Emacs?

Even if you don't have recentf turned on, Emacs is saving a list of files entered via the minibuffer in the variable file-name-history. Also, executing (savehist-mode 1) in your .emacs file makes that variable persist across invocations of Emacs.

So here's a little function that displays the files that actually exist from that list (anyone is welcome to use/build on this):

(defun dir-of-recent-files ()
  "See the list of recently entered files in a Dired buffer."
  (interactive)
  (dired (cons
      "*Recent Files*"
      (seq-filter
       'file-exists-p
       (delete-dups
        (mapcar (lambda (s) (string-trim-right s "/*"))
            file-name-history)
        ))))
  )

I find this quite useful and have it bound to one of those little special function keys on my desktop keyboard. (And so I have not seen the point of turning on recentf...)


From Joe Grossberg's blog (no longer available):

But if you're using GNU Emacs 21.2 (the latest version, which includes this as part of the standard distro), you can just put the following lines into your .emacs file

;; recentf stuff
(require 'recentf)
(recentf-mode 1)
(setq recentf-max-menu-items 25)
(global-set-key "\C-x\ \C-r" 'recentf-open-files)

Then, when you launch emacs, hit CTRL-X CTRL-R. It will show a list of the recently-opened files in a buffer. Move the cursor to a line and press ENTER. That will open the file in question, and move it to the top of your recent-file list.

(Note: Emacs records file names. Therefore, if you move or rename a file outside of Emacs, it won't automatically update the list. You'll have to open the renamed file with the normal CTRL-X CTRL-F method.)

Jayakrishnan Varnam has a page including screenshots of how this package works.

Note: You don't need the (require 'recentf) line.

Tags:

Emacs

Ide