Mainly typo and grammar fixes.
This commit is contained in:
@ -63,11 +63,11 @@ fields; they have the word *phrase* in their *mu info fields* search column.
|
|||||||
** Quoting queries for the shell
|
** Quoting queries for the shell
|
||||||
|
|
||||||
Remember that you need to escape the quotes for a search query when using this
|
Remember that you need to escape the quotes for a search query when using this
|
||||||
from the command-line; otherwise, the shell (or most shells) process the queries
|
from the command-line; otherwise, the shell (or most shells) processes the
|
||||||
and *mu* never sees them.
|
queries and *mu* never sees them.
|
||||||
|
|
||||||
In this case, that means the difference between search for a subject "hi there"
|
In this case, that means the difference between searching for a subject "hi
|
||||||
versus and subject "hi" and some word "there" that can appear in any of the
|
there" versus a subject "hi" and some word "there" that can appear in any of the
|
||||||
combination fields for <empty> (combination fields are discussed below).
|
combination fields for <empty> (combination fields are discussed below).
|
||||||
|
|
||||||
We can use the mentioned *--analyze* option to show the difference:
|
We can use the mentioned *--analyze* option to show the difference:
|
||||||
@ -111,14 +111,14 @@ You can also group things with *(* and *)*, so you can write:
|
|||||||
#+end_example
|
#+end_example
|
||||||
|
|
||||||
If you do not explicitly specify an operator between terms, *and* is implied, so
|
If you do not explicitly specify an operator between terms, *and* is implied, so
|
||||||
the queries
|
these queries are equivalent:
|
||||||
#+begin_example
|
#+begin_example
|
||||||
subject:chip subject:dale
|
subject:chip subject:dale
|
||||||
#+end_example
|
#+end_example
|
||||||
#+begin_example
|
#+begin_example
|
||||||
subject:chip AND subject:dale
|
subject:chip AND subject:dale
|
||||||
#+end_example
|
#+end_example
|
||||||
are equivalent. For readability, we recommend the second version.
|
For readability, we recommend the second version.
|
||||||
|
|
||||||
Note that a =pure not= - e.g. searching for *not apples* is quite a "heavy" query.
|
Note that a =pure not= - e.g. searching for *not apples* is quite a "heavy" query.
|
||||||
|
|
||||||
@ -146,7 +146,7 @@ The query language supports matching basic PCRE regular expressions, as per
|
|||||||
Regular expressions are enclosed in *//*. For example:
|
Regular expressions are enclosed in *//*. For example:
|
||||||
|
|
||||||
#+begin_example
|
#+begin_example
|
||||||
subject:/h.llo/ # match hallo, hello, ...
|
subject:/h.llo/ # matches hallo, hello, ...
|
||||||
#+end_example
|
#+end_example
|
||||||
|
|
||||||
Note the difference between "maildir:/foo" and "maildir:/foo/"; the former
|
Note the difference between "maildir:/foo" and "maildir:/foo/"; the former
|
||||||
@ -160,8 +160,9 @@ implementation details. See below for some of the caveats.
|
|||||||
|
|
||||||
** Whitespace in regular expression literals
|
** Whitespace in regular expression literals
|
||||||
|
|
||||||
To avoid ambiguities in the query parsing, regular express *must not* contain
|
To avoid ambiguities in the query parsing, regular expressions *must not*
|
||||||
whitespace, so the search for a message with subject "hello world", you can write
|
contain whitespace, so to search for a message with subject "hello world", you
|
||||||
|
can write
|
||||||
#+begin_example
|
#+begin_example
|
||||||
mu find 'subject:/hello\\040world/'
|
mu find 'subject:/hello\\040world/'
|
||||||
#+end_example
|
#+end_example
|
||||||
@ -175,9 +176,9 @@ may be good enough, and easier to type.
|
|||||||
** Anchors in regular expressions
|
** Anchors in regular expressions
|
||||||
|
|
||||||
Since the underlying Xapian database does /not/ support regular expressions (it
|
Since the underlying Xapian database does /not/ support regular expressions (it
|
||||||
does support wildcards), *mu* implements the regular-expression search by matching
|
does support wildcards), *mu* implements the regular expression search by
|
||||||
the user's regular expression against all "terms" (words or phrases) that in the
|
matching the user's regular expression against all "terms" (words or phrases)
|
||||||
database for a given field.
|
that exist in the database for a given field.
|
||||||
|
|
||||||
That implementation detail explains why "anchored" regular expressions (with *^*
|
That implementation detail explains why "anchored" regular expressions (with *^*
|
||||||
and *$* to mark begin/end, respectively) can get unexpected results.
|
and *$* to mark begin/end, respectively) can get unexpected results.
|
||||||
|
|||||||
@ -68,7 +68,7 @@ item must be unique among `mu4e-bookmarks' and
|
|||||||
- `:hide' - if t, the bookmark is hidden from the main-view and
|
- `:hide' - if t, the bookmark is hidden from the main-view and
|
||||||
speedbar.
|
speedbar.
|
||||||
- `:hide-if-no-unread' - if t, the shortcut is hidden from
|
- `:hide-if-no-unread' - if t, the shortcut is hidden from
|
||||||
the main-view if it contains are no unread messages.
|
the main-view if it contains no unread messages.
|
||||||
|
|
||||||
You can also use:
|
You can also use:
|
||||||
- `:hide-unread' - do not show the counts of
|
- `:hide-unread' - do not show the counts of
|
||||||
|
|||||||
@ -180,7 +180,7 @@ When it is showing, respectively, From: or To:. It is a cons cell
|
|||||||
|
|
||||||
;; marks for headers of the form; each is a cons-cell (basic . fancy)
|
;; marks for headers of the form; each is a cons-cell (basic . fancy)
|
||||||
;; each of which is basic ascii char and something fancy, respectively
|
;; each of which is basic ascii char and something fancy, respectively
|
||||||
;; by default, we some conservative marks, even when 'fancy'
|
;; by default, we use some conservative marks, even when 'fancy'
|
||||||
;; so they're less likely to break if people don't have certain fonts.
|
;; so they're less likely to break if people don't have certain fonts.
|
||||||
;; However, if you want to be really 'fancy', you could use something like
|
;; However, if you want to be really 'fancy', you could use something like
|
||||||
;; the following; esp. with a newer Emacs with color-icon support.
|
;; the following; esp. with a newer Emacs with color-icon support.
|
||||||
|
|||||||
106
mu4e/mu4e.texi
106
mu4e/mu4e.texi
@ -317,7 +317,7 @@ and @t{git clone https://github.com/djcb/mu.git}
|
|||||||
|
|
||||||
@subsection Building mu
|
@subsection Building mu
|
||||||
|
|
||||||
What all that in place, let's build and install @code{mu} and @code{mu4e}.
|
With all that in place, let's build and install @code{mu} and @code{mu4e}.
|
||||||
Enter the directory where you unpacked or cloned @code{mu}. Then:
|
Enter the directory where you unpacked or cloned @code{mu}. Then:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
@ -1128,7 +1128,7 @@ For more information about marking, see @ref{Marking}.
|
|||||||
@section Sorting and threading
|
@section Sorting and threading
|
||||||
|
|
||||||
By default, @code{mu4e} sorts messages by date, in descending order: the
|
By default, @code{mu4e} sorts messages by date, in descending order: the
|
||||||
most recent messages are shown at the top. In addition, be default
|
most recent messages are shown at the top. In addition, by default
|
||||||
@code{mu4e} shows the message @emph{threads}, i.e., the tree structure
|
@code{mu4e} shows the message @emph{threads}, i.e., the tree structure
|
||||||
representing a discussion thread; this also affects the sort order:
|
representing a discussion thread; this also affects the sort order:
|
||||||
the top-level messages are sorted by the date of the @emph{newest}
|
the top-level messages are sorted by the date of the @emph{newest}
|
||||||
@ -1227,7 +1227,7 @@ Or, let's get the contents of the Jabber-ID header.
|
|||||||
|
|
||||||
You can then add the custom header to your @code{mu4e-headers-fields} or
|
You can then add the custom header to your @code{mu4e-headers-fields} or
|
||||||
@code{mu4e-view-fields}, just like the built-in headers. However, there is an
|
@code{mu4e-view-fields}, just like the built-in headers. However, there is an
|
||||||
important caveat: when your custom header in @code{mu4e-headers-fields}, the
|
important caveat: when your custom header is in @code{mu4e-headers-fields}, the
|
||||||
function is invoked for each of your message headers in search results, and if
|
function is invoked for each of your message headers in search results, and if
|
||||||
it is slow, would dramatically slow down @code{mu4e}.
|
it is slow, would dramatically slow down @code{mu4e}.
|
||||||
|
|
||||||
@ -1259,7 +1259,7 @@ are several options available:
|
|||||||
|
|
||||||
@itemize
|
@itemize
|
||||||
@item @code{horizontal} (this is the default): display the message view below the
|
@item @code{horizontal} (this is the default): display the message view below the
|
||||||
header view. Use @code{mu4e-headers-visible-lines} the set the number of
|
header view. Use @code{mu4e-headers-visible-lines} to set the number of
|
||||||
lines shown (default: 8).
|
lines shown (default: 8).
|
||||||
@item @code{vertical}: display the message view on the
|
@item @code{vertical}: display the message view on the
|
||||||
right side of the header view. Use @code{mu4e-headers-visible-columns} to set
|
right side of the header view. Use @code{mu4e-headers-visible-columns} to set
|
||||||
@ -1711,7 +1711,7 @@ information for these commands.
|
|||||||
Writing e-mail messages takes place in the Composer. @code{mu4e}'s re-uses much of
|
Writing e-mail messages takes place in the Composer. @code{mu4e}'s re-uses much of
|
||||||
Gnus' @code{message-mode}.
|
Gnus' @code{message-mode}.
|
||||||
|
|
||||||
Much of the @code{message-mode} functionality is available, as well some
|
Much of the @code{message-mode} functionality is available, as well as some
|
||||||
@code{mu4e}-specifics. See @ref{(message) Top} for details; not every setting is
|
@code{mu4e}-specifics. See @ref{(message) Top} for details; not every setting is
|
||||||
necessarily also supported in @code{mu4e}.
|
necessarily also supported in @code{mu4e}.
|
||||||
|
|
||||||
@ -1752,7 +1752,7 @@ The major mode for the composer is @code{mu4e-compose-mode}.
|
|||||||
@node Entering the composer
|
@node Entering the composer
|
||||||
@section Entering the composer
|
@section Entering the composer
|
||||||
|
|
||||||
There are a view different ways to @emph{enter} the composer; i.e., from other
|
There are a few different ways to @emph{enter} the composer; i.e., from other
|
||||||
@code{mu4e} views or even completely outside.
|
@code{mu4e} views or even completely outside.
|
||||||
|
|
||||||
If you want the composer to start in a new frame or window, you can configure
|
If you want the composer to start in a new frame or window, you can configure
|
||||||
@ -1908,11 +1908,11 @@ message composition starts, you can define a @emph{hook function}. @code{mu4e}
|
|||||||
offers two hooks:
|
offers two hooks:
|
||||||
@itemize
|
@itemize
|
||||||
@item @code{mu4e-compose-pre-hook}: this hook is run @emph{before} composition
|
@item @code{mu4e-compose-pre-hook}: this hook is run @emph{before} composition
|
||||||
starts; if you are composing a @emph{reply}, @emph{forward} a message, or
|
starts; if you compose a @emph{reply}, @emph{forward} a message, or @emph{edit}
|
||||||
@emph{edit} an existing message, the variable
|
an existing message, the variable @code{mu4e-compose-parent-message} points to
|
||||||
@code{mu4e-compose-parent-message} points to the message being replied to,
|
the message being replied to, forwarded or edited, and you can use
|
||||||
forwarded or edited, and you can use @code{mu4e-message-field} to get the
|
@code{mu4e-message-field} to get the value of various properties (and see
|
||||||
value of various properties (and see @ref{Message functions}).
|
@ref{Message functions}).
|
||||||
@item @code{mu4e-compose-mode-hook}: this hook is run just before composition
|
@item @code{mu4e-compose-mode-hook}: this hook is run just before composition
|
||||||
starts, when the whole buffer has already been set up. This is a good place
|
starts, when the whole buffer has already been set up. This is a good place
|
||||||
for editing-related settings. @code{mu4e-compose-parent-message} (see above)
|
for editing-related settings. @code{mu4e-compose-parent-message} (see above)
|
||||||
@ -2033,7 +2033,7 @@ set with @code{message-signature} (older @code{mu4e} used
|
|||||||
@section Other settings
|
@section Other settings
|
||||||
|
|
||||||
@itemize
|
@itemize
|
||||||
@item If you want use @code{mu4e} as Emacs' default program for sending mail,
|
@item If you want to use @code{mu4e} as Emacs' default program for sending mail,
|
||||||
see @ref{Default email client}.
|
see @ref{Default email client}.
|
||||||
@item Normally, @code{mu4e} @emph{buries} the message buffer after sending; if you want
|
@item Normally, @code{mu4e} @emph{buries} the message buffer after sending; if you want
|
||||||
to kill the buffer instead, add something like the following to your
|
to kill the buffer instead, add something like the following to your
|
||||||
@ -2087,11 +2087,10 @@ command @code{mu4e-analyze-last-query}, which shows how the @code{mu} server has
|
|||||||
interpreted the query, similar to what the @t{--analyze} option does for
|
interpreted the query, similar to what the @t{--analyze} option does for
|
||||||
@t{mu find}.
|
@t{mu find}.
|
||||||
|
|
||||||
Additionally, @code{mu4e} supports @kbd{TAB}-completion for queries. There
|
Additionally, @code{mu4e} supports @kbd{TAB}-completion for queries. There is
|
||||||
there is completion for all search keywords such as @code{and},
|
completion for all search keywords such as @code{and}, @code{from:}, or
|
||||||
@code{from:}, or @code{date:} and also for certain values, i.e., the
|
@code{date:} and also for certain values, i.e., the possible values for
|
||||||
possible values for @code{flag:}, @code{prio:}, @code{mime:}, and
|
@code{flag:}, @code{prio:}, @code{mime:}, and @code{maildir:}.
|
||||||
@code{maildir:}.
|
|
||||||
|
|
||||||
Let's look at some examples here.
|
Let's look at some examples here.
|
||||||
|
|
||||||
@ -2256,7 +2255,7 @@ item must be unique among `mu4e-bookmarks' and
|
|||||||
- `:hide' - if t, the bookmark is hidden from the main-view and
|
- `:hide' - if t, the bookmark is hidden from the main-view and
|
||||||
speedbar.
|
speedbar.
|
||||||
- `:hide-if-no-unread' - if t, the shortcut is hidden from
|
- `:hide-if-no-unread' - if t, the shortcut is hidden from
|
||||||
the main-view if it contains are no unread messages.
|
the main-view if it contains no unread messages.
|
||||||
|
|
||||||
You can also use:
|
You can also use:
|
||||||
- `:hide-unread' - do not show the counts of
|
- `:hide-unread' - do not show the counts of
|
||||||
@ -2431,8 +2430,8 @@ Note that messages that were not in your original search results because of
|
|||||||
@subsection Including related messages
|
@subsection Including related messages
|
||||||
@anchor{Including related messages}
|
@anchor{Including related messages}
|
||||||
|
|
||||||
It can be useful to not only show the messages that directly match a certain
|
It can be useful not only to show the messages that directly match a certain
|
||||||
query, but also include messages that are related to these messages. That is,
|
query, but also to include messages that are related to these messages. That is,
|
||||||
messages that belong to the same discussion threads are included in the results,
|
messages that belong to the same discussion threads are included in the results,
|
||||||
just like e.g. Gmail does it. You can enable this behavior by setting
|
just like e.g. Gmail does it. You can enable this behavior by setting
|
||||||
@code{mu4e-search-include-related} to @code{t}, and you can toggle between
|
@code{mu4e-search-include-related} to @code{t}, and you can toggle between
|
||||||
@ -2528,7 +2527,7 @@ unmark all | U | remove all marks
|
|||||||
@itemize
|
@itemize
|
||||||
@item @emph{delete} deletes the message from database and file-system
|
@item @emph{delete} deletes the message from database and file-system
|
||||||
@item @emph{move} moves the message to some different maildir
|
@item @emph{move} moves the message to some different maildir
|
||||||
@item @emph{refile} is similar @emph{move}, but determines the target maildir based
|
@item @emph{refile} is similar to @emph{move}, but determines the target maildir based
|
||||||
on the characteristics of the message; this is very powerful. See
|
on the characteristics of the message; this is very powerful. See
|
||||||
@code{mu4e-refile-folder} and especially see @ref{Smart refiling} for details.
|
@code{mu4e-refile-folder} and especially see @ref{Smart refiling} for details.
|
||||||
@item @emph{flag}/@emph{unflag}, @emph{read}/@emph{unread} and @emph{trash}/@emph{untrash}
|
@item @emph{flag}/@emph{unflag}, @emph{read}/@emph{unread} and @emph{trash}/@emph{untrash}
|
||||||
@ -2574,7 +2573,7 @@ To change the labels for some message, you specify a @emph{label expression},
|
|||||||
which consists of a space-separated sequence of labels, each prefixed with
|
which consists of a space-separated sequence of labels, each prefixed with
|
||||||
either a @t{+} to add the label, or @t{-} to remove it.
|
either a @t{+} to add the label, or @t{-} to remove it.
|
||||||
|
|
||||||
For instance, to remove the @t{boring} label and add @t{urgent} from the message
|
For instance, to remove the @t{boring} label and add @t{urgent} to the message
|
||||||
at point or the messages in region, press @kbd{l} and enter:
|
at point or the messages in region, press @kbd{l} and enter:
|
||||||
@example
|
@example
|
||||||
+urgent -boring
|
+urgent -boring
|
||||||
@ -2588,7 +2587,7 @@ You can search for labels using the @t{label:} field. For instance,
|
|||||||
@emph{Important}: the labels are only stored in the database (the message files
|
@emph{Important}: the labels are only stored in the database (the message files
|
||||||
are not changed). This means that you would @emph{loose} this information when
|
are not changed). This means that you would @emph{loose} this information when
|
||||||
you remove the database and recreate it, @emph{unless} you @emph{export} the
|
you remove the database and recreate it, @emph{unless} you @emph{export} the
|
||||||
labels before removin the database and re-@emph{import} them after re-creating
|
labels before removing the database and re-@emph{import} them after re-creating
|
||||||
and re-indexing it; see the @command{mu-labels} man-page for further details.
|
and re-indexing it; see the @command{mu-labels} man-page for further details.
|
||||||
|
|
||||||
@subsection Doing @emph{something}
|
@subsection Doing @emph{something}
|
||||||
@ -2597,7 +2596,7 @@ and re-indexing it; see the @command{mu-labels} man-page for further details.
|
|||||||
`something', and then decide later what the `something' should be@footnote{This
|
`something', and then decide later what the `something' should be@footnote{This
|
||||||
kind of `deferred marking' is similar to the facility in @code{dired}, @t{midnight
|
kind of `deferred marking' is similar to the facility in @code{dired}, @t{midnight
|
||||||
commander} (@url{https://www.midnight-commander.org/}) and the like, and uses
|
commander} (@url{https://www.midnight-commander.org/}) and the like, and uses
|
||||||
the same key binding (@key{insert}).} Later, you can set the actual mark using
|
the same key binding (@key{insert}).}. Later, you can set the actual mark using
|
||||||
@kbd{M-x mu4e-mark-resolve-deferred-marks} (@key{#}). Alternatively, @code{mu4e}
|
@kbd{M-x mu4e-mark-resolve-deferred-marks} (@key{#}). Alternatively, @code{mu4e}
|
||||||
will ask you when you try to execute the marks (@key{x}).
|
will ask you when you try to execute the marks (@key{x}).
|
||||||
|
|
||||||
@ -2705,7 +2704,7 @@ messages. There are more examples in the defaults for
|
|||||||
@node Adding a new kind of mark
|
@node Adding a new kind of mark
|
||||||
@section Adding a new kind of mark
|
@section Adding a new kind of mark
|
||||||
|
|
||||||
It is possible to configure new marks, by adding elements to the list
|
It is possible to configure new marks by adding elements to the list
|
||||||
@code{mu4e-marks}. Such an element must have the following form:
|
@code{mu4e-marks}. Such an element must have the following form:
|
||||||
|
|
||||||
@lisp
|
@lisp
|
||||||
@ -2756,7 +2755,7 @@ accounts for private and work email, each with their own values for
|
|||||||
folders, e-mail addresses, mailservers and so on.
|
folders, e-mail addresses, mailservers and so on.
|
||||||
|
|
||||||
The @code{mu4e-context} system is a @code{mu4e}-specific mechanism to allow
|
The @code{mu4e-context} system is a @code{mu4e}-specific mechanism to allow
|
||||||
for that; users can define different @i{contexts} corresponding with
|
for that; users can define different @i{contexts} with corresponding
|
||||||
groups of setting and either manually switch between them, or let
|
groups of setting and either manually switch between them, or let
|
||||||
@code{mu4e} determine the right context based on some user-provided
|
@code{mu4e} determine the right context based on some user-provided
|
||||||
function.
|
function.
|
||||||
@ -2772,11 +2771,11 @@ deeper integration.
|
|||||||
|
|
||||||
Let's see what's contained in a context. Most of it is optional.
|
Let's see what's contained in a context. Most of it is optional.
|
||||||
|
|
||||||
A @code{mu4e-context} is Lisp object with the following members:
|
A @code{mu4e-context} is a Lisp object with the following members:
|
||||||
@itemize
|
@itemize
|
||||||
@item @t{name}: the name of the context, e.g. @t{work} or @t{private}
|
@item @t{name}: the name of the context, e.g. @t{work} or @t{private}.
|
||||||
in the default completion UI, @code{mu4e} uses the first letter of the context to
|
In the default completion UI, @code{mu4e} uses the first letter of the context
|
||||||
select them, so you should ensure all start with a different letter
|
to select them, so you should ensure all start with a different letter
|
||||||
@item @t{vars}:
|
@item @t{vars}:
|
||||||
an association-list (alist) of variable settings for this account.
|
an association-list (alist) of variable settings for this account.
|
||||||
@item @t{enter-func}:
|
@item @t{enter-func}:
|
||||||
@ -2784,16 +2783,15 @@ an (optional) function that takes no parameter and is invoked when entering
|
|||||||
the context. You can use this for extra setup etc.
|
the context. You can use this for extra setup etc.
|
||||||
@item @t{leave-func}:
|
@item @t{leave-func}:
|
||||||
an (optional) function that takes no parameter and is invoked when leaving
|
an (optional) function that takes no parameter and is invoked when leaving
|
||||||
the context. You can use this for clearing things up.
|
the context. You can use this for cleaning things up.
|
||||||
@item @t{match-func}:
|
@item @t{match-func}:
|
||||||
an (optional) function that takes an @t{MSG} message plist as argument,
|
an (optional) function that takes an @t{MSG} message plist as argument,
|
||||||
and returns non-@code{nil} if this context matches the situation. @code{mu4e}
|
and returns non-@code{nil} if this context matches the situation. @code{mu4e}
|
||||||
uses the first context that matches, in a couple of situations:
|
uses the first context that matches, in a couple of situations:
|
||||||
@itemize
|
@itemize
|
||||||
@item when starting @code{mu4e} to determine the
|
@item when starting @code{mu4e} to determine the
|
||||||
starting context; in this case, @t{MSG} is nil. You can use e.g. the
|
starting context; in this case, @t{MSG} is nil. You can use e.g. the host name
|
||||||
host you're running or the time of day to determine which context
|
or the time of day to determine which context matches.
|
||||||
matches.
|
|
||||||
@item before replying to or forwarding a
|
@item before replying to or forwarding a
|
||||||
message with the given message plist as parameter, or @code{nil} when
|
message with the given message plist as parameter, or @code{nil} when
|
||||||
composing a brand new message. The function should return @t{t} when
|
composing a brand new message. The function should return @t{t} when
|
||||||
@ -2809,7 +2807,7 @@ objects.
|
|||||||
@node Context policies
|
@node Context policies
|
||||||
@section Context policies
|
@section Context policies
|
||||||
|
|
||||||
When you have defined contexts and you start @code{mu4e} it decides which
|
When you have defined contexts and you start @code{mu4e}, it decides which
|
||||||
context to use based on the variable @code{mu4e-context-policy};
|
context to use based on the variable @code{mu4e-context-policy};
|
||||||
similarly, when you compose a new message, the context is determined
|
similarly, when you compose a new message, the context is determined
|
||||||
using @code{mu4e-compose-context-policy}.
|
using @code{mu4e-compose-context-policy}.
|
||||||
@ -2825,9 +2823,8 @@ following options:
|
|||||||
|
|
||||||
@itemize
|
@itemize
|
||||||
@item a symbol @code{ask}: ask the user if @code{mu4e} can't figure
|
@item a symbol @code{ask}: ask the user if @code{mu4e} can't figure
|
||||||
things out the context by itself (through the match-function). This is a
|
out the context by itself (through the match-function). This is a good policy if
|
||||||
good policy if there are no match functions, or if the match functions
|
there are no match functions, or if the match functions don't cover all cases.
|
||||||
don't cover all cases.
|
|
||||||
@item a symbol @code{ask-if-none}: if there's already a context, don't change it;
|
@item a symbol @code{ask-if-none}: if there's already a context, don't change it;
|
||||||
otherwise, ask the user.
|
otherwise, ask the user.
|
||||||
@item a symbol @code{pick-first}: pick the first (default) context. This is a
|
@item a symbol @code{pick-first}: pick the first (default) context. This is a
|
||||||
@ -2835,7 +2832,7 @@ good choice if
|
|||||||
you want to specify context for special case, and fall back to the first
|
you want to specify context for special case, and fall back to the first
|
||||||
one if none match.
|
one if none match.
|
||||||
@item @code{nil}: don't change the context; this is useful if you don't change
|
@item @code{nil}: don't change the context; this is useful if you don't change
|
||||||
contexts very often, and e.g. manually changes contexts with @kbd{M-x
|
contexts very often, and e.g. manually change contexts with @kbd{M-x
|
||||||
mu4e-context-switch}.
|
mu4e-context-switch}.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@ -3003,7 +3000,7 @@ what that means for these special folders.
|
|||||||
|
|
||||||
When refiling messages, perhaps to archive them, it can be useful to have
|
When refiling messages, perhaps to archive them, it can be useful to have
|
||||||
different target folders for different messages, based on some property of
|
different target folders for different messages, based on some property of
|
||||||
those message --- smart refiling.
|
those messages --- smart refiling.
|
||||||
|
|
||||||
To accomplish this, we can set the refiling folder (@code{mu4e-refile-folder})
|
To accomplish this, we can set the refiling folder (@code{mu4e-refile-folder})
|
||||||
to a function that returns the actual refiling folder for the particular
|
to a function that returns the actual refiling folder for the particular
|
||||||
@ -3017,7 +3014,7 @@ message. An example should clarify this:
|
|||||||
((mu4e-message-contact-field-matches msg :to
|
((mu4e-message-contact-field-matches msg :to
|
||||||
"mu-discuss@@googlegroups.com")
|
"mu-discuss@@googlegroups.com")
|
||||||
"/mu")
|
"/mu")
|
||||||
;; messages sent directly to some specific address me go to /private
|
;; messages sent directly to some specific address go to /private
|
||||||
((mu4e-message-contact-field-matches msg :to "me@@example.com")
|
((mu4e-message-contact-field-matches msg :to "me@@example.com")
|
||||||
"/private")
|
"/private")
|
||||||
;; messages with football or soccer in the subject go to /football
|
;; messages with football or soccer in the subject go to /football
|
||||||
@ -3044,7 +3041,7 @@ function takes one argument, a message plist@footnote{a property list
|
|||||||
describing a message}. The plist corresponds to the message at point. See
|
describing a message}. The plist corresponds to the message at point. See
|
||||||
@ref{Message functions} for a discussion on how to deal with them.
|
@ref{Message functions} for a discussion on how to deal with them.
|
||||||
@item In our function, we use a @t{cond} control structure; the function
|
@item In our function, we use a @t{cond} control structure; the function
|
||||||
returns the first of the clauses that matches. It's important to make the last
|
returns the first of the clauses that matche. It's important to make the last
|
||||||
clause a catch-all, so we always return @emph{some} folder.
|
clause a catch-all, so we always return @emph{some} folder.
|
||||||
@item We use
|
@item We use
|
||||||
the convenience function @code{mu4e-message-contact-field-matches},
|
the convenience function @code{mu4e-message-contact-field-matches},
|
||||||
@ -3059,7 +3056,7 @@ in fact be a list instead of a single value, such as @code{'(:to :cc)'}.
|
|||||||
|
|
||||||
Using the same mechanism, you can create dynamic sent-, trash-, and
|
Using the same mechanism, you can create dynamic sent-, trash-, and
|
||||||
drafts-folders. The message-parameter you receive for the sent and drafts
|
drafts-folders. The message-parameter you receive for the sent and drafts
|
||||||
folder is the @emph{original} message, that is, the message you reply to, or
|
folder is the @emph{original} message, that is, the message you reply to,
|
||||||
forward, or edit. If there is no such message (for example when composing a
|
forward, or edit. If there is no such message (for example when composing a
|
||||||
brand new message) the message parameter is @code{nil}.
|
brand new message) the message parameter is @code{nil}.
|
||||||
|
|
||||||
@ -3090,11 +3087,11 @@ compose a totally new message, the @code{msg} parameter is @code{nil}.
|
|||||||
@node Actions
|
@node Actions
|
||||||
@chapter Actions
|
@chapter Actions
|
||||||
|
|
||||||
@code{mu4e} lets you define custom actions for messages in @ref{Headers view} and
|
@code{mu4e} lets you define custom actions for messages in @ref{Headers view}
|
||||||
for both messages and attachments in @ref{Message view}. Custom actions
|
and for both messages and attachments in @ref{Message view}. Custom actions
|
||||||
allow you to easily extend @code{mu4e} for specific needs --- for example, marking
|
allow you to easily extend @code{mu4e} for specific needs --- for example,
|
||||||
messages as spam in a spam filter or applying an attachment with a source code
|
marking messages as spam in a spam filter or applying a source code patch from
|
||||||
patch.
|
an attachment.
|
||||||
|
|
||||||
You can invoke the actions with key @key{a} for actions on messages, and key
|
You can invoke the actions with key @key{a} for actions on messages, and key
|
||||||
@key{A} for actions on attachments.
|
@key{A} for actions on attachments.
|
||||||
@ -3230,9 +3227,9 @@ viewing messages in an external web browser or tagging.
|
|||||||
@cindex tagging
|
@cindex tagging
|
||||||
It is easy to add such actions to your configuration; for instance, to enable
|
It is easy to add such actions to your configuration; for instance, to enable
|
||||||
@emph{tagging}@footnote{@code{mu4e} does not offer tagging by default since it
|
@emph{tagging}@footnote{@code{mu4e} does not offer tagging by default since it
|
||||||
mutates the message files, something that @code{mu}/@code{mu4e} generally try to
|
mutates the message files, something that @code{mu}/@code{mu4e} generally tries
|
||||||
avoid. An alternative to tagging is @emph{labeling}, see @ref{Applying and clearing
|
to avoid. An alternative to tagging is @emph{labeling}, see @ref{Applying and
|
||||||
labels}}, you could add:
|
clearing labels}}, you could add:
|
||||||
@lisp
|
@lisp
|
||||||
(add-to-list 'mu4e-headers-actions
|
(add-to-list 'mu4e-headers-actions
|
||||||
'("Tag message" . mu4e-action-retag-message))
|
'("Tag message" . mu4e-action-retag-message))
|
||||||
@ -4680,8 +4677,9 @@ See @ref{(emacs) Mail Aliases}.
|
|||||||
See @ref{Compose hooks}.
|
See @ref{Compose hooks}.
|
||||||
|
|
||||||
@subsection How can I influence the way the original message looks when replying/forwarding?
|
@subsection How can I influence the way the original message looks when replying/forwarding?
|
||||||
Since @code{mu4e-compose-mode} derives from @xref{(message) Top}, you can re-use
|
Since @code{mu4e-compose-mode} derives from @code{gnus-article-mode}, see
|
||||||
many (though not @emph{all} of its facilities.
|
@ref{(message) Top}, you can re-use many (though not @emph{all}) of its
|
||||||
|
facilities.
|
||||||
|
|
||||||
@subsection Replying to unquoted contacts with commas in their name
|
@subsection Replying to unquoted contacts with commas in their name
|
||||||
|
|
||||||
@ -4762,7 +4760,7 @@ Sending...done
|
|||||||
The first and final messages are the most important, and there may be
|
The first and final messages are the most important, and there may be
|
||||||
considerable time between them, depending on the size of the message.
|
considerable time between them, depending on the size of the message.
|
||||||
|
|
||||||
@subsection Using a separate frame or window for composing.
|
@subsection Using a separate frame or window for composing
|
||||||
|
|
||||||
Is it possible to view headers and messages, or compose new ones, in a separate
|
Is it possible to view headers and messages, or compose new ones, in a separate
|
||||||
frame or window?
|
frame or window?
|
||||||
|
|||||||
Reference in New Issue
Block a user