[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Restore minibuffer history, e.g. for compile commands, after restar
Re: Restore minibuffer history, e.g. for compile commands, after restart?
Thu, 13 Dec 2007 07:11:36 -0800 (PST)
On Dec 9, 1:39 pm, "Drew Adams" <address@hidden> wrote:
> > On Dec 9, 12:22 am, "Drew Adams" <address@hidden> wrote:
> > > > > How can I keep thehistoryof minibuffer commands, e.g. the compile
> > > > > commands?
> > > > The package is called `savehist'.
> > > >Emacs-22 bundles it so you can just add (savehist-mode 1) to
> > > > your .emacs.
> > > And here is the same thing (CVS from 2007-11-28), but fixed so
> > > it also works withEmacsversions prior to 22.1, if you should
> > > need that:http://www.emacswiki.org/cgi-bin/wiki/savehist-20%2b.el
> > Thanks! I haveemacs21.3.1. I installed the package and it works!
> > There is just one bug,
> Never say that. ;-)
> > and I thought I'd share it here, maybe others
> > experience the same: If I do M-x compile and go arrow-up to get the
> > most recent command it says "no preceding item", then I go "arrow-
> > down" and "arrow-up" again, and there it is, the most recent compile
> > command, from my lastemacsrun. Or, once I have several in the list
> > it won't show the most recent one on "arrow-up", but the next-to-last
> > one, then after pressing "arrow-down" it shows the most recent one.
> Sorry, I can't reproduce that.
> My guess is that it might be a problem with vanilla `savehist.el' as well,
> because I don't think I changed any of the code concerning that. Or it might
> be a problem withEmacs21's treatment of `compile-history' - that is, it
> might be completely unrelated to savehist.
> La petite histoire : `savehist-20+.el' is only a trivially modified
> `savehist.el': it just doesn't rely upon features that olderEmacsversions
> don't have.Emacsdevelopers didn't want to make the trivial changes that
> would let `savehist.el' play well with other versions - they don't care
> about that. So I posted `savehist-20+.el' atEmacsWiki.
> Perhaps someone else can reproduce the problem you see? Either using
> `savehist-20+.el' or `savehist.el' (withEmacs22 or later).
> Try testing with a .emacsthat contains only (require 'save-hist-20+). And
> perhap try starting over by deleting your file `savehist-file' (default:
> I think you're saying that this is what you see:
> 1. OpenEmacs, then `M-x compile RET foobar'.
> 2. Close and reopenEmacs.
> 3. `M-x compile RET <up>' shows message "no preceding item".
> 4. <down> shows ? (what does it show?)
> 5. <up> shows `foobar'.
> Is that right? I don't see that. At step 3, I see `foobar'.
Sorry for the late reply!
Okay, here is what I get with a fresh .emacs that contains only
(require 'save-hist-20+), also I delete any old .emacs.d/history file.
1. open emacs, `M-x compile RET' (shows 'Compile command: make -k'),
remove 'make -k' and type 'foobar' RET.
2. close and reopen emacs
3. M-x <up> (shows 'compile') RET (shows 'Compile command: make -k')
4. <up> (shows 'Beginning of buffer. No preceding item' and jumps back
to 'Compile command: make -k')
5. <down> (shows 'Compile command:')
6. <up> (shows 'Compile command: foobar')
If on 6., I type <down> again, instead of <up>, I get 'End of history:
No default available', then <up> shows 'Compile command: foobar'
The fact that the fresh emacs shows 'make -k' as a default is kind of
unexpected, right? May this pre-setting be the cause of the trouble?
Note that on step 1., I did not press RET for make -k, and still it
shows up again after restarting emacs.
> After step 2, visit `savehist-file'. What do you see recorded for
> `compile-history'? You should see something like (setq compile-history
What is 'savehist-file'? If you want me to do M-x savehist-file --
that's not available. Or did you mean something else? (sorry, although
I'm a heavy emacs user, I'm not an expert in the jargon! ;-)