LGTM. I've been wanting this functionality for a while, but have been too lazy to implement it myself. I do have one request, though. Could we bind this to 'l' for "limit"? Generally we've been quite good at making the shift key a modifier to the functionality of the lower-case binding, which argues against 'F'. It would also make sense to switch away from 'f' for filtering (limiting) in search-view; 'f' is one of the few bindings that's used in both search and show mode with completely different meanings and 'l' would be a good candidate for the related functionality in both views. Quoth Mark Walters on Apr 25 at 12:17 am: > Show the current thread with a different filter (i.e., open messages > in the thread matching the new query). > > Currently bound to 'F'. > > Note that it is not the same as filter in search as it replaces the > existing query rather than ANDing with it (but it does keep the > threadid part of the query). > --- > > I think filtering (i.e. refining current query) is not ideal as one > might want to remove some aspects of the query. Hence this patch > replaces the query-context. > > Note does not fully work with excludes pending > id:"1331836090-30560-1-git-send-email-markwalters1009@gmail.com" > > Best wishes > > Mark > > emacs/notmuch-show.el | 8 ++++++++ > 1 files changed, 8 insertions(+), 0 deletions(-) > > diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el > index 30b26d1..4a5b8b1 100644 > --- a/emacs/notmuch-show.el > +++ b/emacs/notmuch-show.el > @@ -42,6 +42,7 @@ > (declare-function notmuch-search-next-thread "notmuch" nil) > (declare-function notmuch-search-show-thread "notmuch" nil) > (declare-function notmuch-update-tags "notmuch" (current-tags tag-changes)) > +(declare-function notmuch-read-query "notmuch" (prompt)) > > (defcustom notmuch-message-headers '("Subject" "To" "Cc" "Date") > "Headers that should be shown in a message, in this order. > @@ -1157,6 +1158,7 @@ reset based on the original query." > (define-key map "s" 'notmuch-search) > (define-key map "m" 'notmuch-mua-new-mail) > (define-key map "f" 'notmuch-show-forward-message) > + (define-key map "F" 'notmuch-show-filter-thread) > (define-key map "r" 'notmuch-show-reply-sender) > (define-key map "R" 'notmuch-show-reply) > (define-key map "|" 'notmuch-show-pipe-message) > @@ -1399,6 +1401,12 @@ current thread." > "Mark the current message as read." > (notmuch-show-tag-message "-unread")) > > +(defun notmuch-show-filter-thread () > + "Show the current thread with a different filter" > + (interactive) > + (setq notmuch-show-query-context (notmuch-read-query "Filter thread: ")) > + (notmuch-show-refresh-view t)) > + > ;; Functions for getting attributes of several messages in the current > ;; thread. >