[notmuch] Snippet to jump to message in Gnus from notmuch-show buffer

Carl Worth cworth at cworth.org
Fri Nov 27 04:54:17 PST 2009


On Tue, 24 Nov 2009 09:02:46 +0100, Tassilo Horn <tassilo at member.fsf.org> wrote:
> I'm a Gnus user and use notmuch mostly for searching.  When I want to
> reply to a message, I need to get back to Gnus, so that my Gnus posting
> styles (gcc into that group, right email address, correct signature,...)
> are applied.

Oh, good. I've been hoping to be able to get some advice from gnus
users. I want to figure out how to get gnus support for viewing
encrypted messages, etc.

Do you happen to know some good documentation for how to get started
with gnus for reading mail? I'd be happy even with the bare minimum to
just get gnus to view one single message from out of my mail
store. (Which is something I tried to figure out from the gnus manual,
but I neve succeeded.)

> Therefore, I created this small snippet.  Now C-c C-c inside some
> message in the *notmuch-show* buffer opens this article in a Gnus
> *Summary* buffer, where I can reply to it, forward it, ...
> 
> Of course, the translation from file name to Gnus group name is
> something that is different for any user.  The essence of this code is
> the call to the org-gnus.el function `org-gnus-follow-link', which takes
> the group name and the message-id.  It's included in Emacsen >= 23.
> 
> --8<---------------cut here---------------start------------->8---
> (require 'notmuch)
> 
> (defun th-notmuch-file-to-group (file)
>   "Calculate the Gnus group name from the given file name.
> 
> Example:
> 
>   IN: /home/horn/Mail/Dovecot/uni/INBOX/dbox-Mails/u.4075
>   OUT: nnimap+Uni:INBOX"
>   (concat "nnimap+"
>           (replace-regexp-in-string 
>            "^\\([^/]+\\)/" "\\1:"
>            (replace-regexp-in-string 
>             "/dbox-Mails/.*" ""
>             (replace-regexp-in-string
>              "/home/horn/Mail/Dovecot/" "" file)))))
> 
> (defun th-notmuch-goto-message-in-gnus ()
>   "Open a summary buffer containing the current notmuch
> article."
>   (interactive)
>   (let ((group (th-notmuch-file-to-group (notmuch-show-get-filename)))
>         (message-id (replace-regexp-in-string
>                      "^id:" "" (notmuch-show-get-message-id))))
>     (message "G: %s, mid: %s" group message-id)
>     (if (and group message-id)
>         (org-gnus-follow-link group message-id)
>       (message "Couldn't get relevant infos for switching to Gnus."))))
> 
> (define-key notmuch-show-mode-map (kbd "C-c C-c") 'th-notmuch-goto-message-in-gnus)
> --8<---------------cut here---------------end--------------->8---
> 
> BTW, why does `notmuch-show-get-message-id' prefix the message-id with
> "id:"?
> 
> Bye,
> Tassilo
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch
> 


More information about the notmuch mailing list