mirror of https://github.com/djcb/mu.git
* mu4e: documentation updates
This commit is contained in:
parent
ffa12ad837
commit
c87b426312
384
mu4e/mu4e.texi
384
mu4e/mu4e.texi
|
@ -2,6 +2,12 @@
|
|||
@c %**start of header
|
||||
@setfilename mu4e.info
|
||||
@settitle mu4e user manual
|
||||
|
||||
@c Use proper quote and backtick for code sections in PDF output
|
||||
@c Cf. Texinfo manual 14.2
|
||||
@set txicodequoteundirected
|
||||
@set txicodequotebacktick
|
||||
|
||||
@documentencoding utf-8
|
||||
@c %**end of header
|
||||
@include version.texi
|
||||
|
@ -24,21 +30,30 @@ Documentation License.''
|
|||
@titlepage
|
||||
@title @t{mu4e} - an e-mail client for emacs
|
||||
@subtitle{version @value{mu4e-version}}
|
||||
@author by Dirk-Jan C. Binnema
|
||||
@end titlepage
|
||||
@author Dirk-Jan C. Binnema
|
||||
|
||||
@c The following two commands start the copyright page.
|
||||
@page
|
||||
@vskip 0pt plus 1filll
|
||||
@insertcopying
|
||||
@end titlepage
|
||||
|
||||
@dircategory Emacs
|
||||
@direntry
|
||||
* mu4e: (mu4e). An email client for emacs.
|
||||
@end direntry
|
||||
|
||||
@insertcopying
|
||||
|
||||
@contents
|
||||
|
||||
@ifnottex
|
||||
@node Top
|
||||
@top Welcome to mu4e
|
||||
@top mu4e manual
|
||||
@end ifnottex
|
||||
|
||||
@iftex
|
||||
@node Welcome to mu4e
|
||||
@unnumbered Welcome to mu4e
|
||||
@end iftex
|
||||
|
||||
Welcome to @t{mu4e}!
|
||||
|
||||
|
@ -52,23 +67,25 @@ Some of its features include:
|
|||
@itemize
|
||||
@item Fully search-based: there are no folders, only queries
|
||||
@item Fully documented, with example configurations
|
||||
@item UI optimized for speed with quick key strokes for common actions
|
||||
@item User-interface optimized for speed with quick key strokes for common actions
|
||||
@item Asynchronous: heavy actions don't block @t{emacs}@footnote{currently,
|
||||
the only exception to this is @emph{sending mail}}
|
||||
@item Support for crypto
|
||||
@item Writing rich-text e-mails using @t{org-mode} (experimental)
|
||||
@item Writing rich-text e-mails using @t{org-mode}
|
||||
@item Address auto-completion based on your messages
|
||||
@item Extendable using your own custom actions
|
||||
@item Easily extendable
|
||||
@end itemize
|
||||
|
||||
This manual goes through the installation of @t{mu4e}, discusses the basic
|
||||
configuration, and explains its daily use. It also shows how you can customize
|
||||
@t{mu4e} for your needs. At the end of the manual, there are some example
|
||||
configurations, which should help you to get up to speed quickly.
|
||||
configuration, and explains its daily use. It also shows you how you can
|
||||
customize @t{mu4e} for your needs.
|
||||
|
||||
Also note the @xref{FAQ - Frequently Anticipated Questions}, and the section
|
||||
on @xref{Known issues}, which may save you some time, and the appendices that
|
||||
try the shed some light on @t{mu4e}'s internals.
|
||||
At the end of the manual, there are some example configurations, which should
|
||||
help you to get up to speed quickly.
|
||||
|
||||
Then there's the @xref{FAQ - Frequently Anticipated Questions}, and the
|
||||
section on @xref{Known issues}, which may save you some time, and the
|
||||
appendices that try the shed some light on @t{mu4e}'s internals.
|
||||
|
||||
This manual has been updated for @t{mu}/@t{mu4e} version
|
||||
@emph{@value{mu4e-version}}.
|
||||
|
@ -114,9 +131,9 @@ professionally and privately. Having an efficient e-mail client is essential
|
|||
for me. Since none of the existing ones worked the way I wanted, I created my
|
||||
own.
|
||||
|
||||
As @t{emacs} is such an integral part of my workflow, it made a lot of sense
|
||||
to use it for e-mail as well. And as I already had written an e-mail search
|
||||
engine (@t{mu}), it seemed only logical to use that as a basis.
|
||||
As @t{emacs} is an integral part of my workflow, it made a lot of sense to use
|
||||
it for e-mail as well. And as I already had written an e-mail search engine
|
||||
(@t{mu}), it seemed only logical to use that as a basis.
|
||||
|
||||
Even though I created @t{mu4e} for such selfish reasons, @t{mu4e} tries hard
|
||||
to be as useful as possible for all its users - suggestions are very
|
||||
|
@ -151,9 +168,9 @@ a mail server. That task is delegated to other tools, such as
|
|||
messages end up in a Maildir, @t{mu4e} and @t{mu} are happy to deal with them.
|
||||
|
||||
@t{mu4e} also does @emph{not} implement sending of messages; instead, it
|
||||
depends on @inforef{Top,smtpmail,smtpmail}, which is part of @t{emacs}. In
|
||||
addition, @t{mu4e} piggybacks on Gnus' message editor; @inforef{Top,Gnus
|
||||
message editor,message}.
|
||||
depends on @t{smptmail} (@inforef{Top,smtpmail,smtpmail}), which is part of
|
||||
@t{emacs}. In addition, @t{mu4e} piggybacks on Gnus' message editor;
|
||||
@inforef{Top,Gnus message editor,message}.
|
||||
|
||||
Thus, many of the things an e-mail client traditionally needs to do, are
|
||||
delegated to other tools. This leaves @t{mu4e} to concentrate on what it does
|
||||
|
@ -183,8 +200,8 @@ After these steps, @t{mu4e} should be ready to go.
|
|||
@node Installation
|
||||
@section Installation
|
||||
|
||||
@t{mu4e} is part of @t{mu} - by installing the latter, the former will be
|
||||
installed as well. Note, some distributions provide packed versions of
|
||||
@t{mu4e} is part of @t{mu} - by installing the latter, the former is installed
|
||||
as well. Note, some distributions provide packaged versions of
|
||||
@t{mu}/@t{mu4e}; if you can use those, there's no need to compile anything
|
||||
yourself. However, if there are no packages for your distribution, or if you
|
||||
want to use the latest development versions, you can follow the steps below.
|
||||
|
@ -244,7 +261,7 @@ examples of this.
|
|||
|
||||
In order for @t{mu} (and, by extension, @t{mu4e}) to work, you need to have
|
||||
your e-mail messages stored in a Maildir. If you are already using Maildirs,
|
||||
you are lucky; otherwise, you will need to get your mail there in some way.
|
||||
you are lucky; otherwise, you need to get your mail there in some way.
|
||||
|
||||
If you are using some external @abbr{IMAP} or @abbr{POP} server, you can use
|
||||
tools like @t{getmail}, @t{fetchmail} @t{offlineimap} or @t{isync} to download
|
||||
|
@ -263,9 +280,9 @@ view}.
|
|||
|
||||
You can also have this command run periodically in the background, by setting
|
||||
the variable @code{mu4e-update-interval} to the number of seconds between
|
||||
these updates. If set to @code{nil}, it will not update at all. If you make
|
||||
these updates. If set to @code{nil}, it won't update at all. If you make
|
||||
changes to @code{mu4e-update-interval}, @code{mu4e} must be restarted before
|
||||
the change will take effect.
|
||||
the changes take effect.
|
||||
|
||||
It is possible to get notifications when the indexing process does any updates
|
||||
- for example when receiving new mail. See @code{mu4e-index-updated-hook} and
|
||||
|
@ -367,8 +384,8 @@ A very minimal setup could look something like:
|
|||
(setq smtpmail-smtp-server "smtp.example.org")
|
||||
@end lisp
|
||||
|
||||
Since @t{mu4e} uses the same @t{message mode} and @t{smtpmail} that Gnus uses,
|
||||
many settings for those will also apply to @t{mu4e}.
|
||||
Since @t{mu4e} (re)uses the same @t{message mode} and @t{smtpmail} that Gnus
|
||||
uses, many settings for those also apply to @t{mu4e}.
|
||||
|
||||
By default, @t{mu4e} puts a copy of any messages you sent in the folder you
|
||||
set for @code{mu4e-sent-folder}. In some case, this may not be what you want -
|
||||
|
@ -386,7 +403,7 @@ message is copied to the trash-folder (@code{mu4e-trash-folder}), and
|
|||
For Gmail-IMAP, you could add the following to your settings:
|
||||
|
||||
@verbatim
|
||||
;; don't save messages to Sent Messages, Gmail/IMAP will take care of this
|
||||
;; don't save messages to Sent Messages, Gmail/IMAP takes care of this
|
||||
(setq mu4e-sent-messages-behavior 'trash)
|
||||
@end verbatim
|
||||
|
||||
|
@ -438,7 +455,7 @@ E: Edit B: edit bookmark-search
|
|||
@end example
|
||||
|
||||
@node Main view
|
||||
@chapter Main view
|
||||
@chapter The main view
|
||||
|
||||
After you have installed @t{mu4e} (@pxref{Getting started}), you can start it
|
||||
with @code{M-x mu4e}. @t{mu4e} does some checks to ensure everything is set up
|
||||
|
@ -497,15 +514,16 @@ Below, we assume the default key bindings.
|
|||
|
||||
First, the @emph{Basics}:
|
||||
@itemize
|
||||
@item @t{[j]ump to some maildir} means that after pressing @key{j},
|
||||
@t{mu4e} will ask you for a maildir to visit. These are the maildirs you set
|
||||
in @ref{Basic configuration}. If you choose @key{o} (@emph{other}) or @key{/},
|
||||
you can choose from @emph{all} maildirs under @code{mu4e-maildir}.
|
||||
@item @t{enter a [s]earch query} means that after pressing @key{s} you will
|
||||
be asked for a search query, and after entering one, the results will be
|
||||
shown. @xref{Searching}.
|
||||
@item @t{[C]ompose a new message} means that after pressing @key{C}, you
|
||||
will be thrown in a message-editing buffer, where you can compose a new message.
|
||||
@item @t{[j]ump to some maildir}: after pressing @key{j} (``jump''),
|
||||
@t{mu4e} asks you for a maildir to visit. These are the maildirs you set in
|
||||
@ref{Basic configuration} and any of your own. If you choose @key{o}
|
||||
(``other'') or @key{/}, you can choose from all maildirs under
|
||||
@code{mu4e-maildir}. After choosing a maildir, the message in that maildir are
|
||||
shown in the @ref{Headers view}.
|
||||
@item @t{enter a [s]earch query}: after pressing @key{s}, @t{mu4e} asks
|
||||
you for a search query, and after entering one, shows the results in the
|
||||
@ref{Headers view}.
|
||||
@item @t{[C]ompose a new message}: after pressing @key{C}, you start
|
||||
@end itemize
|
||||
|
||||
@node MV Bookmarks
|
||||
|
@ -523,20 +541,20 @@ bookmark. If you'd like to edit the bookmarked query first, use @key{B}.
|
|||
|
||||
Finally, there are some @emph{Misc} (miscellaneous) actions:
|
||||
@itemize
|
||||
@item @t{[U]pdate email & database} will execute whatever is in
|
||||
@item @t{[U]pdate email & database} executes whatever is in
|
||||
the variable @code{mu4e-get-mail-command}, and afterwards update the @t{mu}
|
||||
database; @pxref{Indexing your messages}. See @ref{Getting mail} for details.
|
||||
@item @t{toggle [m]ail sending mode (direct)} will toggle between sending
|
||||
@item @t{toggle [m]ail sending mode (direct)} toggles between sending
|
||||
mail directly, and queuing it first (for example, when you are offline), and
|
||||
@t{[f]lush queued mail} will flush any queued mail. This item is visible only
|
||||
@t{[f]lush queued mail} flushes any queued mail. This item is visible only
|
||||
if you have actually set up mail-queuing. @ref{Queuing mail}.
|
||||
@item @t{[A]bout mu4e} will give some general information about @t{mu4e}.
|
||||
@item @t{[H]elp} will show help information for this view.
|
||||
@item Finally, @t{[q]uit mu4e} will quit @t{mu4e}.
|
||||
@item @t{[A]bout mu4e} provides general information about @t{mu4e}.
|
||||
@item @t{[H]elp} shows help information for this view.
|
||||
@item Finally, @t{[q]uit mu4e} unsurprisingly quits @t{mu4e}.
|
||||
@end itemize
|
||||
|
||||
@node Headers view
|
||||
@chapter Headers view
|
||||
@chapter The headers view
|
||||
|
||||
The headers view shows the results of a search query. There is a line for each
|
||||
matching message, showing information about it.
|
||||
|
@ -672,14 +690,14 @@ avoiding accidents.
|
|||
The mark/unmark commands support the current @emph{region} (i.e., selection)
|
||||
-- so, for example, if you the select ('mark' in emacs lingo) a number of
|
||||
message (like you would select text in a buffer) and then press @key{DEL}, all
|
||||
selected message will be marked for deletion.
|
||||
selected message is marked for deletion.
|
||||
|
||||
You can mark all messages that match a certain pattern with @key{%}. In
|
||||
addition, you can mark all messages in the current thread (@key{T}) or
|
||||
sub-thread (@key{t}).
|
||||
|
||||
When you try to do a new search, or refresh the headers buffer while you still
|
||||
have marked messages, normally you will be asked what to do with those marks
|
||||
have marked messages, normally you are asked what to do with those marks
|
||||
-- whether to @emph{apply} them before leaving, or @emph{ignore} them. This
|
||||
behavior can be influenced with the variable
|
||||
@code{mu4e-headers-leave-behavior} -- see its documentation.
|
||||
|
@ -725,7 +743,7 @@ on the message at point. You can specify these actions using the variable
|
|||
@code{mu4e-headers-actions}. Refer to @ref{Actions} for details.
|
||||
|
||||
@t{mu4e} defines some default actions. One of this those is for
|
||||
@emph{capturing} a message: @key{a c} will 'capture' the current
|
||||
@emph{capturing} a message: @key{a c} 'captures' the current
|
||||
message. Next, when you're editing some message, you can include the
|
||||
previously captured message as an attachment, using
|
||||
@code{mu4e-compose-attach-captured-message}.
|
||||
|
@ -766,7 +784,7 @@ You can change the selected window from the headers-view to the message-view
|
|||
and vice-versa with @code{mu4e-select-other-view}, bound to @key{y}.
|
||||
|
||||
@node Message view
|
||||
@chapter Message view
|
||||
@chapter The message view
|
||||
|
||||
@menu
|
||||
* MSGV Overview::
|
||||
|
@ -781,8 +799,8 @@ and vice-versa with @code{mu4e-select-other-view}, bound to @key{y}.
|
|||
@node MSGV Overview
|
||||
@section Overview
|
||||
|
||||
After selecting a message in the @ref{Headers view}, it will be shown in the
|
||||
message view, for example:
|
||||
After selecting a message in the @ref{Headers view}, it appears in the message
|
||||
view, for example:
|
||||
|
||||
@verbatim
|
||||
----------------------------------------------------------------------------
|
||||
|
@ -890,7 +908,7 @@ g go to (visit) numbered URL (using `browse-url')
|
|||
(or: <mouse-1> or M-RET with point on url)
|
||||
e extract (save) attachment (asks for number)
|
||||
(or: <mouse-2> or S-RET with point on attachment)
|
||||
C-u e will extract multiple attachments
|
||||
C-u e extracts multiple attachments
|
||||
o open attachment (asks for number)
|
||||
(or: <mouse-1> or M-RET with point on attachment)
|
||||
|
||||
|
@ -929,7 +947,7 @@ variable @code{mu4e-attachment-dir}, for example:
|
|||
@end lisp
|
||||
|
||||
If you want to extract multiple attachments at once, you can do so by
|
||||
prefixing the extracting command by @key{C-u}; so @key{C-u e} will ask you for
|
||||
prefixing the extracting command by @key{C-u}; so @key{C-u e} asks you for
|
||||
a range of attachments to extract (for example, 1 3-6 8). Range @t{a} is a
|
||||
shortcut for @emph{all} attachments.
|
||||
|
||||
|
@ -965,7 +983,7 @@ If there is only an html-version, or if the plain-text version is too short in
|
|||
comparison with the html part, @t{mu4e} tries to convert the html into
|
||||
plain-text for display. The default way to do that is to use the Emacs
|
||||
built-in @code{html2text} function, but if you set the variable
|
||||
@code{mu4e-html2text-command} to some external program, that program will be
|
||||
@code{mu4e-html2text-command} to some external program, that program is
|
||||
used. This program is expected to take html from standard input and write
|
||||
plain text in @t{utf-8} encoding on standard output.
|
||||
|
||||
|
@ -992,6 +1010,12 @@ message over the html version. You can change this by setting
|
|||
@node MSGV Crypto
|
||||
@section Crypto
|
||||
|
||||
The @t{mu4e} message view supports decryption of encrypted messages, as well
|
||||
as verification of signatures. For signing/encrypting messages your outgoing
|
||||
messages, see @ref{Signing and encrypting}.
|
||||
|
||||
Currently, only PGP/MIME is supported; PGP-inline and S/MIME are not.
|
||||
|
||||
@subsection Decryption
|
||||
@anchor{Decryption}
|
||||
|
||||
|
@ -1002,14 +1026,15 @@ addition, @t{gnupg-agent} must be running; thankfully, in most mainstream
|
|||
Linux/Unix desktop environments, this should work automatically.
|
||||
|
||||
You can influence how @t{mu4e} should deal with encrypted messages using
|
||||
@code{mu4e-decryption-policy}. If you set it to @t{t}, @t{mu4e} will attempt to
|
||||
@code{mu4e-decryption-policy}. If you set it to @t{t}, @t{mu4e} attempts to
|
||||
decrypt messages automatically; this is the default. If you set it to @t{nil},
|
||||
@t{mu4e} will @emph{not} attempt to decrypt anything, and finally if you set
|
||||
it to @t{'ask}, it asks you each time when encountering an encrypted message.
|
||||
@t{mu4e} won't @emph{not} attempt to decrypt anything, and finally if you set
|
||||
it to @t{'ask}, it asks you what to do, each time an encrypted message is
|
||||
encountered.
|
||||
|
||||
When opening an encrypted message, @t{mu} consults @t{gpg-agent} to see
|
||||
whether it already has unlocked the key needed to decrypt the message; if not,
|
||||
it will prompt us for a password (typically with a separate top-level
|
||||
it prompts us for a password (typically with a separate top-level
|
||||
window). This is only needed once per session.
|
||||
|
||||
@subsection Verifying signatures
|
||||
|
@ -1030,7 +1055,7 @@ Signature: unverified (Details)
|
|||
@end verbatim
|
||||
|
||||
You can see the details of the signature verification by activating the
|
||||
@t{Details} or pressing @key{v}. This will pop-up a little window with the
|
||||
@t{Details} or pressing @key{v}. This pops up a little window with the
|
||||
details of the signatures found and whether they could be verified or not.
|
||||
|
||||
For more information, please see the @t{mu-verify} manual page.
|
||||
|
@ -1051,8 +1076,8 @@ By default, @t{mu4e} already offers a few useful actions for attachments:
|
|||
@itemize
|
||||
@item @t{open-with} (@key{w}): open the attachment with some arbitrary
|
||||
program. For example, suppose you have received a message with a picture
|
||||
attachment; then, @t{A w 1 RET gimp RET} will open that attachment in The
|
||||
Gimp.
|
||||
attachment; then, @t{A w 1 RET gimp RET} opens that attachment in @emph{The
|
||||
Gimp}.
|
||||
@item @t{pipe} (@key{|}: process the attachment with some Unix shell-pipe and
|
||||
see the results. Suppose you receive a patch file, and would like to get an
|
||||
overview of the changes, using the @t{diffstat} program. You can use something
|
||||
|
@ -1069,7 +1094,7 @@ For more information on setting up actions and how to define them, see
|
|||
|
||||
|
||||
@node Editor view
|
||||
@chapter Editor view
|
||||
@chapter The editor view
|
||||
|
||||
Writing e-mail messages takes place in the Editor View. @t{mu4e}'s editor view
|
||||
builds on top of Gnu's @t{message-mode}. Most of the @t{message-mode}
|
||||
|
@ -1130,7 +1155,7 @@ If you want use @t{mu4e} as the default program for sending mail, please see
|
|||
other interesting topics: @ref{Citations with mu-cite} and @ref{Maintaining an
|
||||
address-book with org-contacts}.
|
||||
|
||||
Normally, @t{mu4e} will @emph{bury} the message buffer after sending; if you
|
||||
Normally, @t{mu4e} @emph{buries} the message buffer after sending; if you
|
||||
want to kill the buffer instead, add something like the following to your
|
||||
configuration:
|
||||
|
||||
|
@ -1159,8 +1184,8 @@ buffer. Once the number of matches gets below this number, one is selected
|
|||
@subsection Limiting the number of addresses
|
||||
|
||||
If you have a lot of mail, especially from mailing lists and the like, there
|
||||
will be @emph{many} e-mail adresses, most of which are unlikely to be useful
|
||||
when auto-completing.
|
||||
are @emph{many} e-mail addresses, most of which are unlikely to be useful when
|
||||
auto-completing.
|
||||
|
||||
So, @t{mu4e} attempts to limit the number of e-mail addresses in the
|
||||
completion pool by filter the ones that are most likely to be relevant. The
|
||||
|
@ -1246,18 +1271,18 @@ message is fully formed when this hook runs. For example, to add a
|
|||
@node Signing and encrypting
|
||||
@section Signing and encrypting
|
||||
|
||||
Signing and encrypting of messages is possible using @ref{(emacs-mime)
|
||||
Composing}, most easily accessed through the @t{Attachments}-menu while
|
||||
composing a message, or functions like @code{mml-secure-message-encrypt-pgp},
|
||||
@code{mml-secure-message-sign-pgp}.
|
||||
Signing and encrypting of messages is possible using @t{emacs-mime}
|
||||
(@inforef{Composing,,emacs-mime Composing}), most easily accessed through the
|
||||
@t{Attachments}-menu while composing a message, or functions like
|
||||
@code{mml-secure-message-encrypt-pgp}, @code{mml-secure-message-sign-pgp}.
|
||||
|
||||
The support for encryption and signing is @emph{independent} of the support
|
||||
for their counterparts, decrypting and signature verification; even if your
|
||||
@t{mu4e} does have support for the latter two, you can still sign/encrypt
|
||||
messages.
|
||||
for their counterparts, decrypting and signature verification (as discussed in
|
||||
@ref{MSGV Crypto}); even if your @t{mu4e} does have support for the latter
|
||||
two, you can still sign/encrypt messages.
|
||||
|
||||
Note however that decryption and signature verification only works for
|
||||
PGP/MIME; inline-PGP and S/MIME are currently not supported.
|
||||
Currently, decryption and signature verification only works for PGP/MIME;
|
||||
inline-PGP and S/MIME are not supported.
|
||||
|
||||
@node Queuing mail
|
||||
@section Queuing mail
|
||||
|
@ -1290,7 +1315,7 @@ directory for indexing, which makes sense since it contains @t{smtpmail}
|
|||
meta-data rather than 'normal' messages; see the @t{mu-mkdir} and @t{mu-index}
|
||||
man pages for details.
|
||||
|
||||
@emph{Warning}: when you switch on queued-mode, your messages will not reach
|
||||
@emph{Warning}: when you switch on queued-mode, your messages won't reach
|
||||
their destination until you switch it off again; so, be careful not to do this
|
||||
accidentally.
|
||||
|
||||
|
@ -1397,11 +1422,11 @@ definition of the default bookmarks is instructive here:
|
|||
("date:today..now" "Today's messages" ?t)
|
||||
("date:7d..now" "Last 7 days" ?w)
|
||||
("mime:image/*" "Messages with images" ?p))
|
||||
"A list of pre-defined queries; these will show up in the main
|
||||
"A list of pre-defined queries; these show up in the main
|
||||
screen. Each of the list elements is a three-element list of the
|
||||
form (QUERY DESCRIPTION KEY), where QUERY is a string with a mu
|
||||
query, DESCRIPTION is a short description of the query (this will
|
||||
show up in the UI), and KEY is a shortcut key for the query.")
|
||||
query, DESCRIPTION is a short description of the query (this
|
||||
shows up in the UI), and KEY is a shortcut key for the query.")
|
||||
@end lisp
|
||||
|
||||
You can replaces these, or add your own items, by putting in your
|
||||
|
@ -1415,7 +1440,7 @@ 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}.
|
||||
|
||||
In the various @t{mu4e} views, pressing @key{b} will list all the bookmarks
|
||||
In the various @t{mu4e} views, pressing @key{b} lists all the bookmarks
|
||||
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}.
|
||||
|
@ -1508,11 +1533,10 @@ search, you want to narrow things down to only those messages that have
|
|||
attachments.
|
||||
|
||||
Now, @code{mu4e-headers-search-narrow} (@key{/}) comes in handy. That function
|
||||
asks for an additional search pattern, which will be appended to the current
|
||||
search query, in effect getting you the subset of the currently shown headers
|
||||
that also match this extra search pattern. @key{\} takes you back to the
|
||||
previous query, so, effectively 'widens' the search if you have just narrowed
|
||||
it.
|
||||
asks for an additional search pattern, which is appended to the current search
|
||||
query, in effect getting you the subset of the currently shown headers that
|
||||
also match this extra search pattern. @key{\} takes you back to the previous
|
||||
query, so, effectively 'widens' the search if you have just narrowed it.
|
||||
|
||||
Technically, narrowing the results of query @t{x} with expression @t{y}
|
||||
implies doing a search @t{(x) AND y}.
|
||||
|
@ -1534,8 +1558,8 @@ Marking can happen in both the @ref{Headers view} and the @ref{Message view}.
|
|||
* What to mark for::
|
||||
* Executing the marks::
|
||||
* Leaving the headers buffer::
|
||||
* Built-in marking functions::
|
||||
* Custom mark functions::
|
||||
* Some marking examples::
|
||||
@end menu
|
||||
|
||||
@node Selecting messages for marking
|
||||
|
@ -1588,7 +1612,7 @@ you can disable this by setting @code{mu4e-headers-show-target} to @code{nil}.
|
|||
@t{deferred} is a special kind of mark; you can use it to mark some messages,
|
||||
and then decide later what mark to use for them. At any time, you can set the
|
||||
actual mark with @code{mu4e-mark-resolve-deferred-marks} (@key{#}), or
|
||||
@t{mu4e} will ask you for it when you execute the marks (@key{x}).
|
||||
@t{mu4e} asks you for it when you execute the marks (@key{x}).
|
||||
|
||||
@node Executing the marks
|
||||
@section Executing the marks
|
||||
|
@ -1599,9 +1623,24 @@ After you have marked some messages, you can execute them with @key{x}
|
|||
@node Leaving the headers buffer
|
||||
@section Leaving the headers buffer
|
||||
|
||||
When you quit the buffer (for example, but doing a new search) with marks being
|
||||
present, @t{mu4e} asks you what to do with them, depending on the value of the
|
||||
variable @code{mu4e-headers-leave-behavior} -- see its documentation.
|
||||
When you quit or update a headers buffer (for example, by doing a new search)
|
||||
that has marked messages, @t{mu4e} asks you what to do with them, depending on
|
||||
the value of the variable @code{mu4e-headers-leave-behavior} -- see its
|
||||
documentation.
|
||||
|
||||
@node Built-in marking functions
|
||||
@section Built-in marking functions
|
||||
|
||||
Some examples of @t{mu4e}'s built-in marking functions.
|
||||
|
||||
@itemize
|
||||
@item @emph{Mark the message at point for trashing}: press @key{d}
|
||||
@item @emph{Mark all messages in the buffer as unread}: press @key{C-x h o}
|
||||
@item @emph{Delete the messages in the current thread}: press @key{T D}
|
||||
@item @emph{Mark messages with a subject matching ``hello'' for flagging}:
|
||||
press @key{% + s hello RET}. Note, the menu system helps you here; all you
|
||||
need to remember is @key{%} for @code{mu4e-headers-mark-pattern}.
|
||||
@end itemize
|
||||
|
||||
@node Custom mark functions
|
||||
@section Custom mark functions
|
||||
|
@ -1615,16 +1654,15 @@ Custom mark functions should be appended to the list
|
|||
@code{mu4e-headers-custom-markers}. Each of the elements of this list
|
||||
('markers') is a list with three (or two) elements:
|
||||
@itemize
|
||||
@item The name of the marker - as short string describing this marker. The
|
||||
first character of this string will also be its shortcut, so these should be
|
||||
unique.
|
||||
@item a predicate function taking two arguments @t{msg} and @t{param}- first,
|
||||
@t{msg}, which is the message
|
||||
plist (see @ref{The message s-expression}); second is a parameter provided by
|
||||
the third of the marker elements (next item). The predicate function should
|
||||
return non-nil if the messages matches.
|
||||
@item (optionally) a function that is evaluated once, and its result is passed as a
|
||||
parameter to the predicate function. This is useful to ask for user-input.
|
||||
@item The name of the marker - a short string describing this marker. The
|
||||
first character of this string determines its shortcut, so these should be
|
||||
unique. If necessary, simply prefix the name with a unique character.
|
||||
@item a predicate function taking two arguments @t{msg} and @t{param}. @t{msg} is the message
|
||||
plist (see @ref{The message s-expression} and @t{param} is a parameter
|
||||
provided by the third of the marker elements (see the next item). The
|
||||
predicate function should return non-nil if the message matches.
|
||||
@item (optionally) a function that is evaluated once, and the result is passed as a
|
||||
parameter to the predicate function. This is useful when user-input is needed.
|
||||
@end itemize
|
||||
|
||||
So, let's look at an example: suppose we want to match all messages that have
|
||||
|
@ -1633,37 +1671,25 @@ more than @emph{n} recipients. We could do it like this:
|
|||
@lisp
|
||||
(add-to-list 'mu4e-headers-custom-markers
|
||||
'("More than n recipients"
|
||||
(lambda (msg n) (> (+ (length (mu4e-message-field msg :to))
|
||||
(lambda (msg n)
|
||||
(> (+ (length (mu4e-message-field msg :to))
|
||||
(length (mu4e-message-field msg :cc))) n))
|
||||
(lambda ()
|
||||
(read-number "Match messages with more recipients than: "))) t)
|
||||
@end lisp
|
||||
|
||||
After evaluating this, pressing @key{&} should let you choose the custom
|
||||
marker function, and ask you for the parameters.
|
||||
After evaluating this, pressing @key{&} lets you choose the custom marker
|
||||
function, and ask you for the parameters.
|
||||
|
||||
As you can see, it's not very hard to define simple functions to match
|
||||
messages. There are some more examples in the defaults for
|
||||
`mu4e-headers-custom-markers'; see @file{mu4e-headers.el}.
|
||||
|
||||
@node Some marking examples
|
||||
@section Some marking examples
|
||||
|
||||
Let's look at some examples, assuming the default key-bindings.
|
||||
|
||||
@itemize
|
||||
@item @emph{Mark the message at point for trashing}: press @key{d}
|
||||
@item @emph{Mark all messages in the buffer as unread}: press @key{C-x h o}
|
||||
@item @emph{Delete the messages in the current thread}: press @key{T D}
|
||||
@item @emph{Mark messages with a subject matching ``hello'' for flagging}:
|
||||
press @key{% + s hello RET}. Note, the menu system helps you here; all you
|
||||
need to remember is @key{%} for @code{mu4e-headers-mark-pattern}.
|
||||
@end itemize
|
||||
|
||||
@node Dynamic folders
|
||||
@chapter Dynamic folders
|
||||
|
||||
In @ref{Folders} we gave an example of setting the standard folders:
|
||||
@ref{Folders} showed how to set the standard folders:
|
||||
@lisp
|
||||
(setq
|
||||
mu4e-sent-folder "/sent" ;; folder for sent messages
|
||||
|
@ -1672,13 +1698,15 @@ In @ref{Folders} we gave an example of setting the standard folders:
|
|||
mu4e-refile-folder "/archive") ;; saved messages
|
||||
@end lisp
|
||||
|
||||
In some case, these static folders may not suffice, and you might want to
|
||||
change the folders depending on the context. For example, we may have
|
||||
different folders for refiling, based on the sender of the message.
|
||||
In some cases having such static folders may not suffice - you might want to
|
||||
change the folders depending on the context. For example, the folder for
|
||||
refiling could vary, based on the sender of the message.
|
||||
|
||||
To enable this, instead of setting the standard folders to constant strings,
|
||||
you can set them to be a @emph{function} that takes a message as parameter,
|
||||
and returns the desired folder name.
|
||||
For this, instead of setting the standard folders to a string, you can set
|
||||
them to be a @emph{function} that takes a message as parameter, and returns
|
||||
the desired folder name.
|
||||
|
||||
In this chapter we show how to do that.
|
||||
|
||||
@menu
|
||||
* Smart refiling::
|
||||
|
@ -1737,8 +1765,20 @@ matches the regular expression.
|
|||
Using the same mechanism, you can set special sent-, trash-, and draft-folders
|
||||
for messages. The message-parameter you receive for sent and draft folder is
|
||||
the @emph{original} message, that is, the message you reply to, or forward. If
|
||||
there is not such message (for example when composing a new message) the
|
||||
message parameter will be @t{nil}.
|
||||
there is no such message (for example when composing a new message) the
|
||||
message parameter is @t{nil}.
|
||||
|
||||
Let's look at another example. Suppose you want a different trash folder for
|
||||
work-email. You can do so with something like the following:
|
||||
|
||||
@lisp
|
||||
(setq mu4e-sent-folder
|
||||
(lambda (msg)
|
||||
(if (mu4e-message-contact-field-matches msg :to "me@@work.com")
|
||||
"/trash-work"
|
||||
"/trash-private")))
|
||||
@end lisp
|
||||
|
||||
|
||||
@node Actions
|
||||
@chapter Actions
|
||||
|
@ -1815,7 +1855,7 @@ Suppose we would like to inspect the number of recipients for a message in the
|
|||
'("Number of recipients" . show-number-of-recipients) t)
|
||||
@end lisp
|
||||
|
||||
After activating this, @key{a n} in the headers view will show the number of
|
||||
After activating this, @key{a n} in the headers view shows the number of
|
||||
recipients for the message at point.
|
||||
|
||||
@node Adding an action in the message view
|
||||
|
@ -1842,7 +1882,7 @@ Finally, let's define an action for an attachment. As mentioned,
|
|||
attachment-action function take @emph{2} arguments, the message and the
|
||||
attachment number to use.
|
||||
|
||||
The following will count the number of lines in an attachment, and define
|
||||
The following counts the number of lines in an attachment, and define
|
||||
@key{n} as the shortcut key (the 'n' is prefixed to the description).
|
||||
|
||||
@lisp
|
||||
|
@ -1862,8 +1902,7 @@ functions are internal, and which are usable for others as well.
|
|||
To help a bit with this, all functions and variables in @t{mu4e} marked for
|
||||
@emph{internal} use have the prefix @t{mu4e~}, while all the public ones use
|
||||
@t{mu4e-}. The @t{~} was chosen because its ascii-code is after all the
|
||||
letters, so they will only appear at the end of completion buffers and the
|
||||
like.
|
||||
letters, so they appear only at the end of completion buffers and the like.
|
||||
|
||||
Functions that start with @t{mu4e-view-} and @t{mu4e-headers-} should be
|
||||
called only from that particular context (the message view and the headers
|
||||
|
@ -1901,7 +1940,7 @@ with other tools.
|
|||
@section Setting the default emacs mail program
|
||||
|
||||
@t{emacs} allows you to select an e-mail program as the default program it
|
||||
will use when you press @key{C-x m} (@code{compose-mail}), call
|
||||
uses when you press @key{C-x m} (@code{compose-mail}), call
|
||||
@code{report-emacs-bug} and so on.
|
||||
|
||||
If you want to use @t{mu4e} for this, you do so by adding the following to
|
||||
|
@ -1911,7 +1950,7 @@ your configuration:
|
|||
(setq mail-user-agent 'mu4e-user-agent)
|
||||
@end lisp
|
||||
|
||||
At the present time, support is still experimental.
|
||||
At the present time, support is experimental.
|
||||
|
||||
@node Creating org-mode links
|
||||
@section Creating org-mode links
|
||||
|
@ -1924,7 +1963,7 @@ can set it up by adding it to your configuration:
|
|||
@end lisp
|
||||
|
||||
After this, you can use the normal @t{org-mode} mechanisms to store links:
|
||||
@t{M-x org-store-link} will store a link to a particular message when you're
|
||||
@t{M-x org-store-link} stores a link to a particular message when you're
|
||||
in @ref{Message view}, and a link to a query when you are in @ref{Headers
|
||||
view}.
|
||||
|
||||
|
@ -1934,7 +1973,7 @@ org-agenda-open-link} in agenda buffers, or @t{M-x org-open-at-point}
|
|||
elsewhere - both are typically bound to @kbd{C-c C-o}.
|
||||
|
||||
@node Rich-text messages with org-mode
|
||||
@section Rich-text messages with org-mode (EXPERIMENTAL)
|
||||
@section Rich-text messages with org-mode
|
||||
|
||||
@t{org-mode} has some nice facilities for editing texts -- creating lists,
|
||||
tables, mathematical formulae etc. In addition, it can convert them to
|
||||
|
@ -1979,9 +2018,10 @@ mode-switching between @t{org-mode} and @t{mu4e-compose-mode} is
|
|||
@subsection Some caveats
|
||||
|
||||
It is better @emph{not} to put @t{org-mu4e-compose-org-mode} in a mode-hook
|
||||
for @t{mu4e-compose-mode}, since that makes it impossible to shut it off
|
||||
again@footnote{This is because @t{mu4e-compose-mode} in invoked again
|
||||
internally when switching, which re-triggers the hook function.}
|
||||
for @t{mu4e-compose-mode}, since that makes it impossible to shut it off again
|
||||
for the particular message@footnote{This is because @t{mu4e-compose-mode} in
|
||||
invoked again internally when switching, which re-triggers the
|
||||
hook-function.}.
|
||||
|
||||
In addition, currently the rich-text code does not work well with the
|
||||
MIME-functionality, such as adding attachments or signing/encrypting
|
||||
|
@ -2016,13 +2056,13 @@ view and the message view, using the @t{org-capture} mechanism. Note, the
|
|||
@node Getting new mail notifications with Sauron
|
||||
@section Getting new mail notifications with Sauron
|
||||
|
||||
The emacs-package Sauron@footnote{Sauron can be found at
|
||||
The emacs-package @t{sauron}@footnote{Sauron can be found at
|
||||
@url{https://github.com/djcb/sauron}, or in the Marmalade package-repository
|
||||
at @url{http://http://marmalade-repo.org/}} (by the same author) can be used
|
||||
to get notifications about new mails.
|
||||
|
||||
If you put something like the below script in your @t{crontab} (or have some
|
||||
other way of having it execute every @emph{n} minutes, you will receive
|
||||
other way of having it execute every @emph{n} minutes) you receive
|
||||
notifications in the sauron-buffer when new messages arrive.
|
||||
|
||||
@verbatim
|
||||
|
@ -2057,7 +2097,8 @@ Note, you should put something like:
|
|||
@lisp
|
||||
(setq sauron-dbus-cookie t)
|
||||
@end lisp
|
||||
in your setup, which allows the script to find the D-Bus session bus.
|
||||
in your setup, which allows the script to find the D-Bus session bus, even
|
||||
when running outside its context.
|
||||
|
||||
@node Speedbar support
|
||||
@section Speedbar support
|
||||
|
@ -2068,12 +2109,12 @@ lists your bookmarks and maildir folders and allows for one-click access to
|
|||
them.
|
||||
|
||||
@t{mu4e} loads @t{mu4e-speedbar} automatically; all you need to do to activate
|
||||
it is @code{M-x speedbar}. Then, when then going to the @ref{Main view}, the
|
||||
speedbar-frame will be updated with your bookmarks and maildirs. For speed
|
||||
it is @code{M-x speedbar}. Then, when then switching to the @ref{Main view},
|
||||
the speedbar-frame is updated with your bookmarks and maildirs. For speed
|
||||
reasons, the list of maildirs is determined when @t{mu4e} starts; if the list
|
||||
of maildirs changes while @t{mu4e} is running, you need to restart @t{mu4e} to
|
||||
reflect those changes in the speedbar and in other places that use this list,
|
||||
such as auto-completion when jumping to a maildir.
|
||||
have those changes reflected in the speedbar and in other places that use this
|
||||
list, such as auto-completion when jumping to a maildir.
|
||||
|
||||
@code{mu4e-speedbar} was contributed by Antono Vasiljev.
|
||||
|
||||
|
@ -2100,12 +2141,13 @@ following to make it work with @t{mu4e}:
|
|||
@node Attaching files with dired
|
||||
@section Attaching files with @t{dired}
|
||||
|
||||
It's possible to attach files to @t{mu4e} messages, using the following steps
|
||||
(based on a post on the @t{mu-discuss} mailing list by Stephen Eglen).
|
||||
It's possible to attach files to @t{mu4e} messages using @t{dired}
|
||||
(@inforef{Dired,,emacs}), using the following steps (based on a post on the
|
||||
@t{mu-discuss} mailing list by Stephen Eglen).
|
||||
|
||||
To prepare for this, you need a special version of the @code{gnus-dired-mail-buffers}
|
||||
function so it understands @t{mu4e} buffers as well; so put in your
|
||||
configuration:
|
||||
To prepare for this, you need a special version of the
|
||||
@code{gnus-dired-mail-buffers} function so it understands @t{mu4e} buffers as
|
||||
well; so put in your configuration:
|
||||
|
||||
@lisp
|
||||
(require 'gnus-dired)
|
||||
|
@ -2166,7 +2208,7 @@ make sure mu4e is in your load-path
|
|||
;; you use e.g. 'mu mkdir' to make the Maildirs if they don't
|
||||
;; already exist
|
||||
|
||||
;; below are the defaults; if they do not exist yet, mu4e will offer to
|
||||
;; below are the defaults; if they do not exist yet, mu4e offers to
|
||||
;; create them
|
||||
;; (setq mu4e-sent-folder "/sent")
|
||||
;; (setq mu4e-drafts-folder "/drafts")
|
||||
|
@ -2446,7 +2488,7 @@ answers.
|
|||
@item @emph{How can I quickly delete/move/trash a lot of messages?} You can
|
||||
select ('mark' in emacs-speak) the messages like you would select text in a
|
||||
buffer; the actions you then take (e.g., @key{DEL} for delete, @key{m} for
|
||||
move and @key{t} for trash) will apply to @emph{all} selected messages. You
|
||||
move and @key{t} for trash) applies to @emph{all} selected messages. You
|
||||
can also use functions like @code{mu4e-headers-mark-thread} (@key{T}),
|
||||
@code{mu4e-headers-mark-subthread} (@key{t}) to mark whole threads at the same
|
||||
time, and @code{mu4e-headers-mark-pattern} (@key{%}) to mark all messages
|
||||
|
@ -2470,7 +2512,7 @@ and some soundfile, change as needed):
|
|||
@item @emph{I don't use @t{offlineimap}, @t{fetchmail} etc., I get my mail
|
||||
through my own mailserver. What should I use for
|
||||
@code{mu4e-get-mail-command}}? Use @t{"true"}. This makes getting mail
|
||||
a no-op, but will re-index the messages.
|
||||
a no-op, but the messages are reindexed.
|
||||
@item @emph{When I try to run @t{mu index} while @t{mu4e} is running I get
|
||||
errors like @t{mu: mu_store_new_writable: xapian error 'Unable to get write
|
||||
lock on ~/.mu/xapian: already locked'}. What can I do about this?} You get
|
||||
|
@ -2482,7 +2524,7 @@ but what you can do is telling @t{mu} to (gracefully) terminate:
|
|||
sleep 1
|
||||
mu index
|
||||
@end verbatim
|
||||
@t{mu4e} will automatically restart @t{mu} when it needs it. In practice, this
|
||||
@t{mu4e} automatically restarts @t{mu} when it needs it. In practice, this
|
||||
seems to work quite well.
|
||||
@item @emph{Can I automatically apply the marks on messages when
|
||||
leaving the headers buffer?} Yes you can -- see the documentation for the
|
||||
|
@ -2492,9 +2534,9 @@ should take you to the right place in this manual.
|
|||
@item @emph{How can I set @t{mu4e} as the default e-mail client in emacs?}
|
||||
See @ref{Setting the default emacs mail program}.
|
||||
@item @emph{Can @t{mu4e} use some fancy Unicode characters instead of these
|
||||
boring plain-ASCII ones?} Glad you asked! Yes, you can set
|
||||
@code{mu4e-use-fancy-chars} to @t{t}, and @t{mu4e} will use those fancy
|
||||
characters in a number of places.
|
||||
boring plain-ASCII ones?} Glad you asked! Yes, if you set
|
||||
@code{mu4e-use-fancy-chars} to @t{t}, @t{mu4e} uses such fancy characters in a
|
||||
number of places.
|
||||
@end itemize
|
||||
|
||||
@node Reading messages
|
||||
|
@ -2538,7 +2580,7 @@ You can drag-and-drop from your desktop; alternatively, you can use @t{dired}
|
|||
prevent that?}
|
||||
Set @code{mu4e-compose-keep-self-cc} to @t{t} in your configuration.
|
||||
@item @emph{How can I sign or encrypt messages?} You can do so using emacs'
|
||||
MIME-support (check the @t{Attachments}-menu while composing a message. Also
|
||||
MIME-support -- check the @t{Attachments}-menu while composing a message. Also
|
||||
see @ref{Signing and encrypting}.
|
||||
@end itemize
|
||||
|
||||
|
@ -2634,9 +2676,9 @@ However, with approach, we need to load the entire e-mail @emph{Xapian}
|
|||
database (in which the message is stored) for each invocation. Wouldn't it be
|
||||
nicer to keep a running @t{mu} instance around? Indeed, it would - and thus,
|
||||
the @t{mu server} sub-command was born. Running @t{mu server}, you get a
|
||||
sort-of shell, in which you can give commands to @t{mu}, which will then spit
|
||||
out the results/errors. @t{mu server} is not meant for humans, but it can be
|
||||
used manually, which is great for debugging.
|
||||
sort-of shell, in which you can give commands to @t{mu}, which then spits out
|
||||
the results/errors. @t{mu server} is not meant for humans, but it can be used
|
||||
manually, which is great for debugging.
|
||||
|
||||
@node Reading from the server
|
||||
@section Reading from the server
|
||||
|
@ -2654,8 +2696,8 @@ leave out a lot of detail, @t{mu4e}-specifics, and look at a bit more generic
|
|||
approach.
|
||||
|
||||
The first thing to do is to create a process (for example, with
|
||||
@code{start-process}), and then register a filter function for it, which will
|
||||
be invoked whenever the process has some data for us. Something like:
|
||||
@code{start-process}), and then register a filter function for it, which is
|
||||
invoked whenever the process has some data for us. Something like:
|
||||
|
||||
@lisp
|
||||
(let ((proc (start-process <arguments>)))
|
||||
|
@ -2681,10 +2723,10 @@ process and the chunk of output as arguments; in @t{mu4e} it looks something lik
|
|||
@end lisp
|
||||
|
||||
@code{<evaluate-expression>} de-multiplexes the s-expression we got. For
|
||||
example, if the s-expression looks like an e-mail message header, it will be
|
||||
processed by the header-handling function, which will append it to the header
|
||||
list. If the s-expression looks like an error message, it will be reported to
|
||||
the user. And so on.
|
||||
example, if the s-expression looks like an e-mail message header, it is
|
||||
processed by the header-handling function, which appends it to the header
|
||||
list. If the s-expression looks like an error message, it is reported to the
|
||||
user. And so on.
|
||||
|
||||
The language between frontend and backend is documented in the @t{mu-server}
|
||||
man-page. @t{mu4e} can log these communications; you can use @code{M-x
|
||||
|
@ -2753,8 +2795,8 @@ about its version. @t{mu server} then responds with a @t{pong} s-expression to
|
|||
provide this information (this is implemented in @file{mu-cmd-server.c}).
|
||||
|
||||
We start this sequence when @t{mu4e} is invoked (when the program is
|
||||
started). It call @t{mu4e-proc-ping}, and registers a (lambda) function for
|
||||
@t{mu4e-proc-pong-func}, so it will retrieve the response.
|
||||
started). It calls @t{mu4e-proc-ping}, and registers a (lambda) function for
|
||||
@t{mu4e-proc-pong-func}, to handle the response.
|
||||
|
||||
@verbatim
|
||||
-> ping
|
||||
|
@ -2762,8 +2804,8 @@ started). It call @t{mu4e-proc-ping}, and registers a (lambda) function for
|
|||
@end verbatim
|
||||
|
||||
When we receive such a @t{pong} (in @file{mu4e-proc.el}), the lambda function
|
||||
we registered will be called, and it check the version we got from the
|
||||
@t{pong} with the version we expected, and raises an error, if they differ.
|
||||
we registered is called, and it compares the version we got from the @t{pong}
|
||||
with the version we expected, and raises an error, if they differ.
|
||||
|
||||
@node Logging and debugging
|
||||
@appendix Logging and debugging
|
||||
|
@ -2776,9 +2818,9 @@ reason, @t{mu4e} can log all these messages. Note that the 'protocol' is
|
|||
documented to some extent in the @t{mu-server} manpage.
|
||||
|
||||
You can enable (and disable) logging with @t{M-x mu4e-toggle-logging}. The
|
||||
log-buffer is called @t{*mu4e-log*}, and in the @ref{Main view},
|
||||
@ref{Headers view} and @t{Message view}, there's a keybinding @key{$} that
|
||||
will take you there. You can quit it by pressing @key{q}.
|
||||
log-buffer is called @t{*mu4e-log*}, and in the @ref{Main view}, @ref{Headers
|
||||
view} and @t{Message view}, there's a keybinding @key{$} that takes you
|
||||
there. You can quit it by pressing @key{q}.
|
||||
|
||||
Logging can be a bit resource-intensive, so you may not want to leave it on
|
||||
all the time. By default, the log only maintains the most recent 1200 lines.
|
||||
|
|
Loading…
Reference in New Issue