52

I'd like to save, for instance, my find-file and Meta-X history in Emacs' mini-buffer so I can recall commands later in a different session.

3 Answers 3

87

As Trey Jackson said, you want to put this:

(savehist-mode)

in your Emacs start up file, then restart Emacs. (Calling it interactively will stomp on your current mini-buffer history, so you may not want to do that.)

It's also worth pointing out that you can persist other variables across sessions by adding them to savehist-additional-variables, like so:

(setq savehist-additional-variables '(kill-ring search-ring regexp-search-ring))

You may also want to customize savehist-file, to pick the location where Emacs saves all this stuff:

(setq savehist-file "~/.emacs.d/tmp/savehist")
4
  • Thanks for the info on clobbering and the ability to add other history buffers. This looks like what I'm looking for. Commented Aug 23, 2009 at 18:11
  • 2
    "... then restart Emacs. (Calling it interactively will stomp on your current mini-buffer history, so you may not want to do that.)" Won't restarting Emacs, when you don't have savehist-mode enabled, also clobber your history? Seems the interactive call is less destructive to Emacs state, unless I'm missing something. Commented Sep 5, 2018 at 15:02
  • (savehist-mode 1) gives Symbol’s value as variable is void: pell-buffer error how can I fix it?
    – alper
    Commented Jan 14, 2021 at 12:07
  • @alper that's gotta be something related to pell-buffer in your local config; without seeing it, i don't think folks will be able to offer much advice...
    – genehack
    Commented Jan 15, 2021 at 14:53
19
M-x savehist-mode

or

(savehist-mode 1)

(available in Emacs as of 22.1)

1

If you have an Emacs version older than 22, you can use this instead:

http://www.emacswiki.org/emacs/download/savehist-20%2b.el

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