On Tue, 20 Dec 2011 08:01:46 +0000, David Edmondson <dme@dme.org> wrote: > >From a Carl Worth idea: add a function which will select the most > recently used notmuch buffer (search, show or hello). If no recent > buffer is found, run `notmuch'. > > It is expected that the user will global bind this command to a key > sequence. > --- Thanks Aaron & David for the explanations. I was finally able to test and byte compile the function separately (as a learning experiment). LGTM. I'd like to know how users are going to use this :) Tomi > emacs/notmuch.el | 17 +++++++++++++++++ > 1 files changed, 17 insertions(+), 0 deletions(-) > > diff --git a/emacs/notmuch.el b/emacs/notmuch.el > index 2e9973e..da61aa9 100644 > --- a/emacs/notmuch.el > +++ b/emacs/notmuch.el > @@ -1055,6 +1055,23 @@ current search results AND that are tagged with the given tag." > (interactive) > (notmuch-hello)) > > +;;;###autoload > +(defun notmuch-jump-to-recent-buffer () > + "Jump to the most recent notmuch buffer (search, show or hello). > + > +If no recent buffer is found, run `notmuch'." > + (interactive) > + (let ((last > + (loop for buffer in (buffer-list) > + if (with-current-buffer buffer > + (memq major-mode '(notmuch-show-mode > + notmuch-search-mode > + notmuch-hello-mode))) > + return buffer))) > + (if last > + (switch-to-buffer last) > + (notmuch)))) > + > (setq mail-user-agent 'notmuch-user-agent) > > (provide 'notmuch) > -- > 1.7.7.3 Tomi