* implement mu4e-search-bookmark-edit-first & document it.

This commit is contained in:
djcb 2012-03-25 20:33:17 +03:00
parent 41f5d4ace2
commit 85cba86d07
5 changed files with 37 additions and 12 deletions

View File

@ -257,7 +257,8 @@ after the end of the search results."
(define-key map "s" 'mu4e-search)
(define-key map "b" 'mu4e-search-bookmark)
(define-key map "B" 'mu4e-search-bookmark-edit-first)
(define-key map "q" 'mu4e-quit-buffer)
(define-key map "r" 'mu4e-rerun-search)
@ -685,6 +686,17 @@ otherwise, limit to up to `mu4e-search-results-limit'."
(mu4e-hdrs-search query current-prefix-arg))))
(defun mu4e-search-bookmark-edit-first (expr)
"Search using some bookmarked query, but allow for editing the
bookmark before submitting it. With C-u prefix, show /all/ results,
otherwise, limit to up to `mu4e-search-results-limit'."
(interactive
(list (read-string "[mu] search for: "
(concat (or (mu4e-ask-bookmark "Edit bookmark: ") "") " "))))
(when expr
(mu4e-hdrs-search expr current-prefix-arg)))
(defun mu4e-quit-buffer ()
"Quit the current buffer."
(interactive)

View File

@ -36,6 +36,8 @@
(let ((map (make-sparse-keymap)))
(define-key map "b" 'mu4e-search-bookmark)
(define-key map "B" 'mu4e-search-bookmark-edit-first)
(define-key map "s" 'mu4e-search)
(define-key map "q" 'mu4e-quit)
(define-key map "j" 'mu4e-jump-to-maildir)

View File

@ -221,6 +221,8 @@ if IS-OPEN is nil, and otherwise open it."
(define-key map "s" 'mu4e-search)
(define-key map "b" 'mu4e-search-bookmark)
(define-key map "B" 'mu4e-search-bookmark-edit-first)
(define-key map "j" 'mu4e-jump-to-maildir)
(define-key map "g" 'mu4e-view-go-to-url)

View File

@ -532,7 +532,6 @@ maildirs under `mu4e-maildir."
(error "Invalid shortcut '%c'" kar))))))
(defun mu4e-ask-bookmark (prompt &optional kar)
"Ask the user for a bookmark (using PROMPT) as defined in
`mu4e-bookmarks', then return the corresponding query."

View File

@ -359,10 +359,10 @@ the next sections we will describe what these keys actually @emph{do}.
/ +--------+ \
/ [RFCE]^ \
/ | \
+-------+ [sjb] +---------+ [RET] +---------+
+-------+ [sjbB]+---------+ [RET] +---------+
| main | <---> | headers | <----> | message |
+-------+ [q] +---------+ [qbjs] +---------+
[sbj] ^
+-------+ [q] +---------+ [qbBjs]+---------+
[sjbB] ^
[.] | [q]
V
+-----+
@ -371,10 +371,10 @@ the next sections we will describe what these keys actually @emph{do}.
Default bindings
----------------
R: Reply s: search .: raw view
F: Forward j: jump-to-maildir
R: Reply s: search .: raw view (toggle)
F: Forward j: jump-to-maildir q: quit
C: Compose b: bookmark-search
E: Edit q: quit
E: Edit B: bookmark-search (edit-first)
@end example
@node Main view
@ -677,8 +677,10 @@ being in a certain folder.
Queries normally return only up to @code{mu4e-search-results-limit} (which
defaults to 500) results. You get @emph{all} results when you prefix your
search commands (such as with @code{mu4e-search}, @code{mu4e-search-bookmark}
and @code{mu4e-jump-to-maildir} with @kbd{C-u}.
search commands (such as with @code{mu4e-search}, @code{mu4e-search-bookmark},
@code{mu4e-search-bookmark-edit-first} and @code{mu4e-jump-to-maildir} with
@kbd{C-u}.
The reason for limiting the number of results in the query is that emacs may
become a bit slow when displaying many results, and in many cases
@ -752,7 +754,8 @@ If you have queries that you use often, you may want to store them as
invoke them in other places as well. Bookmark searches are available in the
main view @ref{Main view}, header view @xref{Headers view}, and message view
@xref{Message view}, using (by default) the key @key{b}
(@code{mu4e-search-bookmark}).
(@code{mu4e-search-bookmark}).
@code{mu4e} provides some default bookmarks, which you can override. The
definition of the default bookmarks is instructive here:
@ -777,7 +780,7 @@ configuration (@file{~/.emacs}) something like:
'("size:5M..500M" "Big messages" ?b))
@end lisp
This prepend your bookmark to the list, and assign the key @key{b} to it. If
This prepends your bookmark to the list, and assigns the key @key{b} to it. If
you want to @emph{append} your bookmark, you can use @code{t} as the third
argument to @code{add-to-list}.
@ -786,6 +789,13 @@ defined in the echo area, with the shortcut key highlighted. So, to invoke the
bookmark we just defined (to get the list of "Big Messages"), all you need to
type is @key{bb}.
There is also @code{mu4e-search-bookmark-edit-first} (key @key{B}), which lets
you edit the search query with some bookmark already filled in. This can be
useful if you have many similar queries, but need to change some
parameter. For example, you could have a bookmark @t{"NOT maildir:/Trash
AND"}@footnote{Not a valid search query by itself} and add whatever you
want to search for to that.
@node Maildir searches
@section Maildir searches