Merge pull request #2728 from Tristan02d/man-typeset

Try to improve overall manual page typesetting
This commit is contained in:
Dirk-Jan C. Binnema
2024-07-25 20:06:47 +03:00
committed by GitHub
24 changed files with 366 additions and 312 deletions

View File

@ -1,30 +1,30 @@
* COMMON OPTIONS * COMMON OPTIONS
** -d, --debug ** -d, --debug
makes mu generate extra debug information, useful for debugging the program Makes *mu* generate extra debug information, useful for debugging the program
itself. By default, debug information goes to the log file, ~/.cache/mu/mu.log. itself. By default, debug information goes to the log file, _~/.cache/mu/mu.log_.
It can safely be deleted when mu is not running. When running with --debug It can safely be deleted when *mu* is not running. When running with *--debug*
option, the log file can grow rather quickly. See the note on logging below. option, the log file can grow rather quickly. See the note on logging below.
** -q, --quiet ** -q, --quiet
causes mu not to output informational messages and progress information to Causes *mu* not to output informational messages and progress information to
standard output, but only to the log file. Error messages will still be sent to standard output, but only to the log file. Error messages will still be sent to
standard error. Note that mu index is much faster with --quiet, so it is standard error. Note that *mu index* is much faster with *--quiet*, so it is
recommended you use this option when using mu from scripts etc. recommended you use this option when using *mu* from scripts etc.
** --log-stderr ** --log-stderr
causes mu to not output log messages to standard error, in addition to sending Causes *mu* to not output log messages to standard error, in addition to sending
them to the log file. them to the log file.
** --nocolor ** --nocolor
do not use ANSI colors. The environment variable ~NO_COLOR~ can be used as an Do not use ANSI colors. The environment variable *NO_COLOR* can be used as an
alternative to ~--nocolor~. alternative to *--nocolor*.
** -V, --version ** -V, --version
prints mu version and copyright information. Prints *mu* version and copyright information.
** -h, --help ** -h, --help
lists the various command line options. Lists the various command line options.
# Local Variables: # Local Variables:
# mode: org # mode: org

View File

@ -1,6 +1,6 @@
* COPYRIGHT * COPYRIGHT
This manpage is part of ~mu~ @VERSION@. This manpage is part of *mu* @VERSION@.
Copyright © 2008-@YEAR@ Dirk-Jan C. Binnema. License GPLv3+: GNU GPL version 3 Copyright © 2008-@YEAR@ Dirk-Jan C. Binnema. License GPLv3+: GNU GPL version 3
or later <https://gnu.org/licenses/gpl.html>. This is free software: you are or later <https://gnu.org/licenses/gpl.html>. This is free software: you are

View File

@ -1,3 +1,5 @@
#+include: macros.inc
* EXIT CODE * EXIT CODE
This command returns 0 upon successful completion, or a non-zero exit code This command returns 0 upon successful completion, or a non-zero exit code
@ -5,8 +7,8 @@ otherwise.
0. success 0. success
2. no matches found. Try a different query 2. no matches found. Try a different query
11. database schema mismatch. You need to re-initialize ~mu~, see *mu-init(1)* 11. database schema mismatch. You need to re-initialize *mu*, see {{{man-link(mu-init,1)}}}
19. failed to acquire lock. Some other program has exclusive access to the mu database 19. failed to acquire lock. Some other program has exclusive access to the *mu* database
99. caught an exception 99. caught an exception
# Local Variables: # Local Variables:

5
man/macros.inc Normal file
View File

@ -0,0 +1,5 @@
#+MACRO: man-link *$1*($2)
# Local Variables:
# mode: org
# End:

View File

@ -26,6 +26,7 @@ incs=[
'common-options.inc', 'common-options.inc',
'copyright.inc.in', 'copyright.inc.in',
'exit-code.inc', 'exit-code.inc',
'macros.inc',
'muhome.inc', 'muhome.inc',
'prefooter.inc', 'prefooter.inc',
] ]

View File

@ -1,5 +1,6 @@
#+TITLE: MU ADD #+TITLE: MU ADD
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
@ -7,11 +8,11 @@ mu-add - add one or more messages to the database
* SYNOPSIS * SYNOPSIS
*mu [common-options] add [options] <file> [<files>]* *mu* [_COMMON-OPTIONS_] *add* [_OPTIONS_] _FILE_...
* DESCRIPTION * DESCRIPTION
~mu add~ is the command to add specific message files to the database. Each file *mu add* is the command to add specific message files to the database. Each file
must be specified with an absolute path. must be specified with an absolute path.
* ADD OPTIONS * ADD OPTIONS
@ -26,4 +27,6 @@ must be specified with an absolute path.
* SEE ALSO * SEE ALSO
*mu(1)*, *mu-index(1)*, *mu-remove(1)* {{{man-link(mu,1)}}},
{{{man-link(mu-index,1)}}},
{{{man-link(mu-remove,1)}}}

View File

@ -1,19 +1,20 @@
#+TITLE: MU BOOKMARKS #+TITLE: MU BOOKMARKS
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
mu-bookmarks - file with bookmarks (shortcuts) for mu search expressions mu-bookmarks - file with bookmarks (shortcuts) for *mu* search expressions
* DESCRIPTION * DESCRIPTION
Bookmarks are named shortcuts for search queries. They allow using a convenient Bookmarks are named shortcuts for search queries. They allow using a convenient
name for often-used queries. The bookmarks are also visible as shortcuts in the name for often-used queries. The bookmarks are also visible as shortcuts in the
mu experimental user interfaces, =mug= and =mug2=. *mu* experimental user interfaces, =mug= and =mug2=.
The bookmarks file is read from =<muhome>/bookmarks=. On Unix this would typically The bookmarks file is read from _<muhome>/bookmarks_. On Unix this would typically
be w be =~/.config/mu/bookmarks=, but this can be influenced using the ~--muhome~ be _~/.config/mu/bookmarks_, but this can be influenced using the *--muhome*
parameter for *mu-find(1)*. parameter for {{{man-link(mu-find,1)}}}.
The bookmarks file is a typical key=value *.ini*-file, which is best shown by The bookmarks file is a typical key=value *.ini*-file, which is best shown by
means of an example: means of an example:
@ -25,7 +26,7 @@ oldhat=maildir:/archive subject:hat # archived with subject containing 'hat'
#+end_example #+end_example
The *[mu]* group header is required. For practical uses of bookmarks, see The *[mu]* group header is required. For practical uses of bookmarks, see
*mu-find(1)*. {{{man-link(mu-find,1)}}}.
#+include: "author.inc" :minlevel 1 #+include: "author.inc" :minlevel 1
@ -33,4 +34,5 @@ The *[mu]* group header is required. For practical uses of bookmarks, see
* SEE ALSO * SEE ALSO
*mu(1)*, *mu-find(1)* {{{man-link(mu,1)}}},
{{{man-link(mu-find,1)}}}

View File

@ -1,5 +1,6 @@
#+TITLE: MU CFIND #+TITLE: MU CFIND
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
@ -8,7 +9,7 @@ for use in other programs.
* SYNOPSIS * SYNOPSIS
*mu [common-options] cfind [options] [<pattern>]* *mu* [_COMMON-OPTIONS_] *cfind* [_OPTIONS_] [_PATTERN_]
* DESCRIPTION * DESCRIPTION
@ -42,12 +43,12 @@ If you do not specify a search expression, *mu cfind* returns the full list of
contacts. Note, *mu cfind* uses a cache with the e-mail information, which is contacts. Note, *mu cfind* uses a cache with the e-mail information, which is
populated during the indexing process. populated during the indexing process.
The regular expressions are basic case-insensitive PCRE, see *pcre(3)*. The regular expressions are basic case-insensitive PCRE, see {{{man-link(pcre,3)}}}.
* CFIND OPTIONS * CFIND OPTIONS
** --format=plain|mutt-alias|mutt-ab|wl|org-contact|bbdb|csv ** --format plain|mutt-alias|mutt-ab|wl|org-contact|bbdb|csv
sets the output format to the given value. The following are available: Sets the output format to the given value. The following are available:
#+ATTR_MAN: :disable-caption t #+ATTR_MAN: :disable-caption t
| --format= | description | | --format= | description |
@ -67,13 +68,14 @@ any double-quote is replaced by a double-double quote (thus, "hello" become
""hello"", and fields with commas are put in double-quotes. Normally, this ""hello"", and fields with commas are put in double-quotes. Normally, this
should only apply to name fields. should only apply to name fields.
** --personal,-p only show addresses seen in messages where one of `my' e-mail ** -p, --personal
Only show addresses seen in messages where one of `my' e-mail
addresses was seen in one of the address fields; this is to exclude addresses addresses was seen in one of the address fields; this is to exclude addresses
only seen in mailing-list messages. See the ~--my-address~ parameter to *mu init*. only seen in mailing-list messages. See the *--my-address* parameter to *mu init*.
** --after=<timestamp> only show addresses last seen after ** --after _timestamp_
=<timestamp>=. =<timestamp>= is a UNIX *time_t* value, the number of Only show addresses last seen after _timestamp_. _timestamp_ is a UNIX
seconds since 1970-01-01 (in UTC). *time_t* value, the number of seconds since 1970-01-01 (in UTC).
From the command line, you can use the *date* command to get this value. For From the command line, you can use the *date* command to get this value. For
example, only consider addresses last seen after 2020-06-01, you could specify example, only consider addresses last seen after 2020-06-01, you could specify
@ -87,7 +89,7 @@ example, only consider addresses last seen after 2020-06-01, you could specify
* JSON FORMAT * JSON FORMAT
With ~--format=json~, the matching contacts come out as a JSON array, e.g., With *--format=json*, the matching contacts come out as a JSON array, e.g.,
#+begin_example #+begin_example
[ [
{ {
@ -124,7 +126,7 @@ Each contact has the following fields:
| ~personal~ | whether the email was seen in a message together with a personal address | | ~personal~ | whether the email was seen in a message together with a personal address |
| ~frequency~ | approximation of the number of times this contact was seen in messages | | ~frequency~ | approximation of the number of times this contact was seen in messages |
The JSON format is useful for further processing, e.g. using the *jq(1)* tool: The JSON format is useful for further processing, e.g. using the {{{man-link(jq,1)}}} tool:
List display names, sorted by their last-seen date: List display names, sorted by their last-seen date:
#+begin_example #+begin_example
@ -134,7 +136,7 @@ $ mu cfind --format=json --personal | jq -r '.[] | ."last-seen-iso" + " " + .dis
* INTEGRATION WITH MUTT * INTEGRATION WITH MUTT
You can use *mu cfind* as an external address book server for *mutt*. You can use *mu cfind* as an external address book server for *mutt*.
For this to work, add the following to your =muttrc=: For this to work, add the following to your _muttrc_:
#+begin_example #+begin_example
set query_command = "mu cfind --format=mutt-ab '%s'" set query_command = "mu cfind --format=mutt-ab '%s'"
@ -146,7 +148,7 @@ which is (by default) accessible by pressing *Q*.
* ENCODING * ENCODING
*mu cfind* output is encoded according to the current locale except for *mu cfind* output is encoded according to the current locale except for
=--format=bbdb=. This is hard-coded to UTF-8, and as such specified in the *--format=bbdb*. This is hard-coded to UTF-8, and as such specified in the
output-file, so emacs/bbdb can handle things correctly, without guessing. output-file, so emacs/bbdb can handle things correctly, without guessing.
#+include: "exit-code.inc" :minlevel 1 #+include: "exit-code.inc" :minlevel 1
@ -158,4 +160,9 @@ output-file, so emacs/bbdb can handle things correctly, without guessing.
#+include: "copyright.inc" :minlevel 1 #+include: "copyright.inc" :minlevel 1
* SEE ALSO * SEE ALSO
*mu(1)*, *mu-index(1)*, *mu-find(1)*, *pcre(3)*, *jq(1)*
{{{man-link(mu,1)}}},
{{{man-link(mu-index,1)}}},
{{{man-link(mu-find,1)}}},
{{{man-link(pcre,3)}}},
{{{man-link(jq,1)}}}

View File

@ -1,9 +1,10 @@
#+TITLE: MU EASY #+TITLE: MU EASY
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
mu-easy - a quick introduction to mu mu-easy - a quick introduction to *mu*
* DESCRIPTION * DESCRIPTION
@ -12,8 +13,8 @@ many options, which are all described in the man pages for the various
sub-commands. This man pages jumps over all of the details and gives examples of sub-commands. This man pages jumps over all of the details and gives examples of
some common use cases. If the use cases described here do not precisely do what some common use cases. If the use cases described here do not precisely do what
you want, please check the more extensive information in the man page about the you want, please check the more extensive information in the man page about the
sub-command you are using -- for example, the *mu-index(1)* or *mu-find(1)* man sub-command you are using -- for example, the {{{man-link(mu-index,1)}}} or
pages. {{{man-link(mu-find,1)}}} man pages.
*NOTE*: the *index* command (and therefore, the ones that depend on that, such as *NOTE*: the *index* command (and therefore, the ones that depend on that, such as
*find*), require that you store your mail in the Maildir-format. If you don't do *find*), require that you store your mail in the Maildir-format. If you don't do
@ -27,14 +28,14 @@ non-empty.
* SETTING THINGS UP * SETTING THINGS UP
The first time you run the mu commands, you need to initialize it. This is done The first time you run the *mu* commands, you need to initialize it. This is done
with the *init* command. with the *init* command.
#+begin_example #+begin_example
$ mu init $ mu init
#+end_example #+end_example
This uses the defaults (see *mu-init(1)* for details on how to change that). This uses the defaults (see {{{man-link(mu-init,1)}}} for details on how to change that).
* INDEXING YOUR E-MAIL * INDEXING YOUR E-MAIL
@ -50,23 +51,23 @@ the speed of your computer, hard drive etc. Usually, indexing should be able to
reach a speed of a few hundred messages per second. reach a speed of a few hundred messages per second.
*mu index* guesses the top-level Maildir to do its job; if it guesses wrong, you *mu index* guesses the top-level Maildir to do its job; if it guesses wrong, you
can use the =--maildir= option to specify the top-level directory that should be can use the *--maildir* option to specify the top-level directory that should be
processed. See the *mu-index(1)* man page for more details. processed. See the {{{man-link(mu-index,1)}}} man page for more details.
Normally, *mu index* visits all the directories under the top-level Maildir; Normally, *mu index* visits all the directories under the top-level Maildir;
however, you can exclude certain directories (say, the `trash' or `spam' however, you can exclude certain directories (say, the `trash' or `spam'
folders) by creating a file called =.noindex= in the directory. When *mu* sees such folders) by creating a file called _.noindex_ in the directory. When *mu* sees such
a file, it will exclude this directory and its sub-directories from indexing. a file, it will exclude this directory and its sub-directories from indexing.
Also see *.noupdate* in the *mu-index(1)* manpage. Also see *.noupdate* in the {{{man-link(mu-index,1)}}} manpage.
* SEARCHING YOUR E-MAIL * SEARCHING YOUR E-MAIL
After you have indexed your mail, you can start searching it. By default, the After you have indexed your mail, you can start searching it. By default, the
search results are printed on standard output. Alternatively, the output can search results are printed on standard output. Alternatively, the output can
take the form of Maildir with symbolic links to the found messages. This enables take the form of Maildir with symbolic links to the found messages. This enables
integration with e-mail clients; see the *mu-find(1)* man page for details, the integration with e-mail clients; see the {{{man-link(mu-find,1)}}} man page for
syntax of the search parameters and so on. Here, we just give some examples for details, the syntax of the search parameters and so on. Here, we just give some
common cases. examples for common cases.
You can use the *mu fields* command to get information about all possible fields You can use the *mu fields* command to get information about all possible fields
and flags. and flags.
@ -89,7 +90,7 @@ on your the language/locale you are using.
How do we know that the message was sent to Julius Caesar? Well, it's not How do we know that the message was sent to Julius Caesar? Well, it's not
visible from the results above, because the default fields that are shown are visible from the results above, because the default fields that are shown are
date/sender/subject. However, we can change this using the =--fields= parameter date/sender/subject. However, we can change this using the *--fields* parameter
(try *mu fields* to see all the details): (try *mu fields* to see all the details):
#+begin_example #+begin_example
@ -105,8 +106,8 @@ Julius Caesar <jc@example.com> Fere libenter homines id quod volunt credunt
This is the same message found before, only with some different fields This is the same message found before, only with some different fields
displayed. displayed.
By default, *mu* uses the logical ~AND~ for the search parameters -- that is, it By default, *mu* uses the logical _AND_ for the search parameters -- that is, it
displays messages that match all the parameters. However, we can use logical ~OR~ displays messages that match all the parameters. However, we can use logical _OR_
as well: as well:
#+begin_example #+begin_example
@ -122,7 +123,7 @@ from Socrates. This could return something like:
#+end_example #+end_example
What if we want to see some of the body of the message? You can get a `summary' What if we want to see some of the body of the message? You can get a `summary'
of the first lines of the message using the =--summary-len= option, which will of the first lines of the message using the *--summary-len* option, which will
`summarize' the first =n= lines of the message: `summarize' the first =n= lines of the message:
#+begin_example #+begin_example
@ -140,12 +141,12 @@ The summary consists of the first /n/ lines of the message with all superfluous
whitespace removed. whitespace removed.
Also note the *m:/archive* parameter in the query. This means that we only match Also note the *m:/archive* parameter in the query. This means that we only match
messages in a maildir called ~'/archive'~. messages in a maildir called _'/archive'_.
* MORE QUERIES * MORE QUERIES
Let's list a few more queries that may be interesting; please note that Let's list a few more queries that may be interesting; please note that
searches for message flags, priority and date ranges are only available in mu searches for message flags, priority and date ranges are only available in *mu*
version 0.9 or later. version 0.9 or later.
Get all important messages which are signed: Get all important messages which are signed:
@ -180,7 +181,7 @@ which is equivalent to:
#+begin_example #+begin_example
*$ mu find subject:angstrom flag:unread* *$ mu find subject:angstrom flag:unread*
#+end_example #+end_example
because does mu is case-insensitive and accent-insensitive. because does *mu* is case-insensitive and accent-insensitive.
Get all unread messages between March 2002 and August 2003 about some bird (or Get all unread messages between March 2002 and August 2003 about some bird (or
a Swedish rock band): a Swedish rock band):
@ -283,9 +284,9 @@ $ mu cfind julius
#+end_example #+end_example
will find all contacts with `julius' in either name or e-mail address. Note that will find all contacts with `julius' in either name or e-mail address. Note that
*mu cfind* accepts a =regular expression= (as per *pcre(3)*) *mu cfind* accepts a =regular expression= (as per {{{man-link(pcre,3)}}}
*mu cfind* also supports a =--format==-parameter, which sets the output to some *mu cfind* also supports a *--format=*-parameter, which sets the output to some
specific format, so the results can be imported into another program. For specific format, so the results can be imported into another program. For
example, to export your contact information to a *mutt* address book file, you can example, to export your contact information to a *mutt* address book file, you can
use something like: use something like:
@ -295,9 +296,17 @@ $ mu cfind --format=mutt-alias > ~/mutt-aliases
#+end_example #+end_example
Then, you can use them in *mutt* if you add something like *source ~/mutt-aliases* Then, you can use them in *mutt* if you add something like *source ~/mutt-aliases*
to your =muttrc=. to your _muttrc_.
#+include: "prefooter.inc" :minlevel 1 #+include: "prefooter.inc" :minlevel 1
* SEE ALSO * SEE ALSO
*mu(1)*, *mu-init(1)*, *mu-index(1)*, *mu-find(1)*, *mu-mfind(1)*, *mu-mkdir(1)*, *mu-view(1)*, *mu-extract(1)*
{{{man-link(mu,1)}}},
{{{man-link(mu-init,1)}}},
{{{man-link(mu-index,1)}}},
{{{man-link(mu-find,1)}}},
{{{man-link(mu-mfind,1)}}},
{{{man-link(mu-mkdir,1)}}},
{{{man-link(mu-view,1)}}},
{{{man-link(mu-extract,1)}}}

View File

@ -1,5 +1,6 @@
#+TITLE: MU EXTRACT #+TITLE: MU EXTRACT
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
@ -8,9 +9,9 @@ mu-extract - display and save message parts
* SYNOPSIS * SYNOPSIS
*mu [common-options] extract [options] [<file>]* *mu* [_COMMON-OPTIONS_] *extract* [_OPTIONS_] [_FILE_]
*mu [common-options] extract [options] <file> <pattern>* *mu* [_COMMON-OPTIONS_] *extract* [_OPTIONS_] _FILE_ _PATTERN_
* DESCRIPTION * DESCRIPTION
@ -24,46 +25,45 @@ MIME-parts, a name is derived from the message-id of the message.
If you specify a regular express pattern as the second argument, all attachments If you specify a regular express pattern as the second argument, all attachments
with filenames matching that pattern will be extracted. The regular expressions with filenames matching that pattern will be extracted. The regular expressions
are basic PCRE, and are case-sensitive by default; see *pcre(3)* for more details. are basic PCRE, and are case-sensitive by default; see {{{man-link(pcre,3)}}} for more details.
Without any options, *mu extract* simply outputs the list of leaf MIME-parts in Without any options, *mu extract* simply outputs the list of leaf MIME-parts in
the message. Only `leaf' MIME-parts (including RFC822 attachments) are the message. Only `leaf' MIME-parts (including RFC822 attachments) are
considered, *multipart/** etc. are ignored. considered, *multipart/** etc. are ignored.
Without a filename parameter, ~mu extract~ reads a message from standard-input. In Without a filename parameter, *mu extract* reads a message from standard-input. In
that case, you cannot use the second, ~<pattern>~ parameter as this would be that case, you cannot use the second, _PATTERN_ parameter as this would be
ambiguous; instead, use the ~--matches~ option. ambiguous; instead, use the *--matches* option.
* EXTRACT OPTIONS * EXTRACT OPTIONS
** -a, --save-attachments ** -a, --save-attachments
save all MIME-parts that look like attachments. Save all MIME-parts that look like attachments.
** --save-all ** --save-all
save all non-multipart MIME-parts. Save all non-multipart MIME-parts.
** --parts=<parts> ** --parts _parts_
only consider the following numbered parts (comma-separated list). The numbers Only consider the following numbered _parts_ (comma-separated list). The numbers
for the parts can be seen from running *mu extract* without any options but only for the parts can be seen from running *mu extract* without any options but only
the message file. the message file.
** --target-dir=<dir> ** --target-dir _dir_
save the parts in the target directory rather than the current working Save the parts in _dir_ rather than the current working directory.
directory.
** --overwrite ** --overwrite
overwrite existing files with the same name; by default overwriting is not Overwrite existing files with the same name; by default overwriting is not
allowed. allowed.
** -u,--uncooked ** -u,--uncooked
by default, ~mu~ transforms the attachment filenames a bit (such as by replacing By default, *mu* transforms the attachment filenames a bit (such as by replacing
spaces by dashes); with this option, leave that to the minimum for creating spaces by dashes); with this option, leave that to the minimum for creating
a legal filename in the target directory. a legal filename in the target directory.
** --matches=<pattern> ** --matches _pattern_
Attachments with filenames matching the pattern will be extracted. The regular Attachments with filenames matching _pattern_ will be extracted. The regular
expressions are basic PCRE, and are case-sensitive by default; see *pcre(3)* for expressions are basic PCRE, and are case-sensitive by default; see
more details. {{{man-link(pcre,3)}}} for more details.
** --play ** --play
Try to `play' (open) the attachment with the default application for the Try to `play' (open) the attachment with the default application for the
@ -96,7 +96,7 @@ To extract an mp3-file, and play it in the default mp3-playing application:
$ mu extract --play msgfile 'whoopsididitagain.mp3' $ mu extract --play msgfile 'whoopsididitagain.mp3'
#+end_example #+end_example
when reading from standard-input, you need ~--matches~, so: when reading from standard-input, you need *--matches*, so:
#+begin_example #+begin_example
$ cat msgfile | mu extract --play --matches 'whoopsididitagain.mp3' $ cat msgfile | mu extract --play --matches 'whoopsididitagain.mp3'
#+end_example #+end_example
@ -105,4 +105,4 @@ $ cat msgfile | mu extract --play --matches 'whoopsididitagain.mp3'
* SEE ALSO * SEE ALSO
*mu(1)* {{{man-link(mu,1)}}}

View File

@ -1,5 +1,6 @@
#+TITLE: MU FIND #+TITLE: MU FIND
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
@ -7,17 +8,17 @@ mu-find - find e-mail messages in the *mu* database.
* SYNOPSIS * SYNOPSIS
*mu [common-options] find [options] <search expression>* *mu* [_COMMON-OPTIONS_] *find* [_OPTIONS_] _SEARCH_EXPRESSION_
* DESCRIPTION * DESCRIPTION
*mu find* is the *mu* command for searching e-mail message that were stored earlier *mu find* is the *mu* command for searching e-mail message that were stored earlier
using *mu index(1)*. using {{{man-link(mu index,1)}}}.
* SEARCHING MAIL * SEARCHING MAIL
*mu find* starts a search for messages in the database that match some search *mu find* starts a search for messages in the database that match some search
pattern. The search patterns are described in detail in *mu-query(7)*. pattern. The search patterns are described in detail in {{{man-link(mu-query,7)}}}.
For example: For example:
@ -40,19 +41,19 @@ The search pattern is taken as a command-line parameter. If the search
parameter consists of multiple parts (as in the example) they are parameter consists of multiple parts (as in the example) they are
treated as if there were a logical *and* between them. treated as if there were a logical *and* between them.
For details on the possible queries, see *mu-query(7)*. For details on the possible queries, see {{{man-link(mu-query,7)}}}.
* FIND OPTIONS * FIND OPTIONS
Note, some of the important options are described in the *mu*(1) man-page Note, some of the important options are described in the {{{man-link(mu,1)}}}
and not here, as they apply to multiple mu-commands. manual page and not here, as they apply to multiple *mu* commands.
The *find*-command has various options that influence the way *mu* displays the The *find*-command has various options that influence the way *mu* displays the
results. If you don't specify anything, the defaults are ~fields="d f s"~, results. If you don't specify anything, the defaults are *--fields="d f s"*,
~--sortfield=date~ and ~--reverse~. *--sortfield=date* and *--reverse*.
** -f, --fields=<fields> ** -f, --fields _fields_
specifies a string that determines which fields are shown in the output. This Specifies a string that determines which fields are shown in the output. This
string consists of a number of characters (such as 's' for subject or 'f' for string consists of a number of characters (such as 's' for subject or 'f' for
from), which will replace with the actual field in the output. Fields that are from), which will replace with the actual field in the output. Fields that are
not known will be output as-is, allowing for some simple formatting. not known will be output as-is, allowing for some simple formatting.
@ -79,14 +80,14 @@ parameters, such as:
m *m*aildir m *m*aildir
#+end_example #+end_example
For the complete list, try the command: ~mu info fields~. For the complete list, try the command: *mu info fields*.
The message flags are described in *mu-query(7)*. As an example, a message which The message flags are described in {{{man-link(mu-query,7)}}}. As an example, a
is `seen', has an attachment and is signed would have `asz' as its corresponding message which is `seen', has an attachment and is signed would have `asz' as its
output string, while an encrypted new message would have `nx'. corresponding output string, while an encrypted new message would have `nx'.
** -s, --sortfield=<field> and -z,--reverse ** -s, --sortfield _field_ and -z,--reverse
specify the field to sort the search results by and the direction (i.e., Specify the field to sort the search results by and the direction (i.e.,
`reverse' means that the sort should be reverted - Z-A). Examples include: `reverse' means that the sort should be reverted - Z-A). Examples include:
#+begin_example #+begin_example
@ -100,7 +101,7 @@ specify the field to sort the search results by and the direction (i.e.,
to,t To:-recipient(s) to,t To:-recipient(s)
#+end_example #+end_example
For the complete list, try the command: ~mu info fields~. For the complete list, try the command: *mu info fields*.
Thus, for example, to sort messages by date, you could specify: Thus, for example, to sort messages by date, you could specify:
@ -112,16 +113,16 @@ Note, if you specify a sortfield, by default, messages are sorted in reverse
(descending) order (e.g., from lowest to highest). This is usually a good (descending) order (e.g., from lowest to highest). This is usually a good
choice, but for dates it may be more useful to sort in the opposite direction. choice, but for dates it may be more useful to sort in the opposite direction.
** -n, --maxnum=<number> ** -n, --maxnum _number_
If > 0, display maximally that number of entries. If not specified, all matching If _number_ > 0, display maximally that number of entries. If not specified, all
entries are displayed. matching entries are displayed.
** --summary-len=<number> ** --summary-len _number_
If > 0, use that number of lines of the message to provide a summary. If _number_ > 0, use that number of lines of the message to provide a summary.
** --format=<plain|links|xml|sexp> ** --format plain|links|xml|sexp
output results in the specified format: Output results in the specified format.
- The default is *plain*, i.e normal output with one line per message. - The default is *plain*, i.e normal output with one line per message.
- *links* outputs the results as a maildir with symbolic links to the found - *links* outputs the results as a maildir with symbolic links to the found
@ -129,14 +130,14 @@ output results in the specified format:
information). information).
- *xml* formats the search results as XML. - *xml* formats the search results as XML.
- *sexp* formats the search results as an s-expression as used in Lisp programming - *sexp* formats the search results as an s-expression as used in Lisp programming
environments environments.
** --linksdir=<dir> and -c, --clearlinks ** --linksdir _dir_ and -c, --clearlinks
when using ~-format=links~, output the results as a maildir with symbolic links to When using *--format=links*, output the results as a maildir with symbolic links to
the found messages. This enables easy integration with mail-clients (see below the found messages. This enables easy integration with mail-clients (see below
for more information). *mu* will create the maildir if it does not exist yet. for more information). *mu* will create the maildir if it does not exist yet.
If you specify ~--clearlinks~, existing symlinks will be cleared from the target If you specify *--clearlinks*, existing symlinks will be cleared from the target
directories; this allows for re-use of the same maildir. However, this option directories; this allows for re-use of the same maildir. However, this option
will delete any symlink it finds, so be careful. will delete any symlink it finds, so be careful.
@ -144,14 +145,14 @@ will delete any symlink it finds, so be careful.
$ mu find grolsch --format=links --linksdir=~/Maildir/search --clearlinks $ mu find grolsch --format=links --linksdir=~/Maildir/search --clearlinks
#+end_example #+end_example
stores links to found messages in =~/Maildir/search=. If the directory does not stores links to found messages in _~/Maildir/search_. If the directory does not
exist yet, it will be created. Note: when *mu* creates a Maildir for these links, exist yet, it will be created. Note: when *mu* creates a Maildir for these links,
it automatically inserts a =.noindex= file, to exclude the directory from *mu it automatically inserts a _.noindex_ file, to exclude the directory from *mu
index*. index*.
** --after=<timestamp> ** --after _timestamp_
only show messages whose message files were last modified (*mtime*) after Only show messages whose message files were last modified (*mtime*) after
=<timestamp>=. =<timestamp>= is a UNIX *time_t* value, the number of seconds since _timestamp_. _timestamp_ is a UNIX *time_t* value, the number of seconds since
1970-01-01 (in UTC). 1970-01-01 (in UTC).
From the command line, you can use the *date* command to get this value. For From the command line, you can use the *date* command to get this value. For
@ -162,8 +163,8 @@ could specify
#+end_example #+end_example
This is assuming the GNU *date* command. This is assuming the GNU *date* command.
** --exec=<command> ** --exec _command_
the ~--exec~ coption causes the =command= to be executed on each matched message; The *--exec* coption causes _command_ to be executed on each matched message;
for example, to see the raw text of all messages matching `milkshake', you could for example, to see the raw text of all messages matching `milkshake', you could
use: use:
#+begin_example #+begin_example
@ -174,24 +175,23 @@ which is roughly equivalent to:
$ mu find milkshake --fields="l" | xargs less $ mu find milkshake --fields="l" | xargs less
#+end_example #+end_example
** -b, --bookmark=<bookmark> ** -b, --bookmark _bookmark_
use a bookmarked search query. Using this option, a query from your bookmark Use a bookmarked search query. Using this option, a query from your bookmark
file will be prepended to other search queries. See *mu-bookmarks(5)* for the file will be prepended to other search queries. See
details of the bookmarks file. {{{man-link(mu-bookmarks,5)}}} for the details of the bookmarks file.
** -u, --skip-dups ** -u, --skip-dups
whenever there are multiple messages with the same message-id field, only show Whenever there are multiple messages with the same message-id field, only show
the first one. This is useful if you have copies of the same message, which is a the first one. This is useful if you have copies of the same message, which is a
common occurrence when using e.g. Gmail together with *offlineimap*. common occurrence when using e.g. Gmail together with *offlineimap*.
** -r, --include-related ** -r, --include-related
include messages being referred to by the matched messages -- i.e.. include Include messages being referred to by the matched messages -- i.e.. include
messages that are part of the same message thread as some matched messages. This messages that are part of the same message thread as some matched messages. This
is useful if you want Gmail-style `conversations'. is useful if you want Gmail-style `conversations'.
** -t, --threads ** -t, --threads
show messages in a `threaded' format -- that is, with indentation and arrows Show messages in a `threaded' format -- that is, with indentation and arrows
showing the conversation threads in the list of matching messages. When using showing the conversation threads in the list of matching messages. When using
this, sorting is chronological (by date), based on the newest message in a this, sorting is chronological (by date), based on the newest message in a
thread. thread.
@ -214,9 +214,9 @@ The algorithm used for determining the threads is based on Jamie Zawinksi's
description: http://www.jwz.org/doc/threading.html description: http://www.jwz.org/doc/threading.html
** -a,--analyze ** -a,--analyze
instead of executing the query, analyze it by show the parse-tree s-expression Instead of executing the query, analyze it by show the parse-tree s-expression
and a stringified version of the Xapian query. This can help users to determine and a stringified version of the Xapian query. This can help users to determine
how ~mu~ interprets some query. how *mu* interprets some query.
The output of this command are differ between versions, but should be helpful The output of this command are differ between versions, but should be helpful
nevertheless. nevertheless.
@ -231,7 +231,7 @@ It is possible to integrate *mu find* with some mail clients
** *mutt* ** *mutt*
For *mutt* you can use the following in your =muttrc=; pressing the F8 key will For *mutt* you can use the following in your *muttrc*; pressing the F8 key will
start a search, and F9 will take you to the results. start a search, and F9 will take you to the results.
#+begin_example #+begin_example
@ -262,7 +262,7 @@ your Wanderlust configuration file:
Now, you can search using the *g* key binding; you can also create permanent Now, you can search using the *g* key binding; you can also create permanent
virtual folders when the messages matching some expression by adding something virtual folders when the messages matching some expression by adding something
like the following to your =folders= file. like the following to your _folders_ file.
#+begin_example #+begin_example
VFolders { VFolders {
@ -276,7 +276,7 @@ After restarting Wanderlust, the virtual folders should appear.
* ENCODING * ENCODING
*mu find* output is encoded according to the locale for =--format=plain= (the *mu find* output is encoded according to the locale for *--format=plain* (the
default format), and UTF-8 for all other formats (=sexp=, =xml=). default format), and UTF-8 for all other formats (=sexp=, =xml=).
@ -311,4 +311,7 @@ taking the total number for 10 test runs.
* SEE ALSO * SEE ALSO
*mu(1)*, *mu-index(1)*, *mu-query(7)*, *mu-info(1)* {{{man-link(mu,1)}}},
{{{man-link(mu-index,1)}}},
{{{man-link(mu-query,7)}}},
{{{man-link(mu-info,1)}}}

View File

@ -7,11 +7,11 @@ mu-help - show help information about mu commands.
* SYNOPSIS * SYNOPSIS
*mu [common-options] help [<command>]* *mu* [_COMMON-OPTIONS_] *help* [_COMMAND_]
* DESCRIPTION * DESCRIPTION
*mu help* provides help information about mu commands. *mu help* provides help information about *mu* commands.
#+include: "common-options.inc" :minlevel 1 #+include: "common-options.inc" :minlevel 1

View File

@ -1,5 +1,6 @@
#+TITLE: MU INDEX #+TITLE: MU INDEX
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
@ -7,42 +8,42 @@ mu-index - index e-mail messages stored in Maildirs
* SYNOPSIS * SYNOPSIS
*mu [common-options] index* *mu* [_COMMON-OPTIONS_] *index*
* DESCRIPTION * DESCRIPTION
*mu index* is the *mu* command for scanning the contents of Maildir directories and *mu index* is the *mu* command for scanning the contents of Maildir directories and
storing the results in a Xapian database. The data can then be queried using storing the results in a Xapian database. The data can then be queried using
*mu-find(1)*. {{{man-link(mu-find,1)}}}.
Before the first time you run *mu index*, you must run *mu init* to initialize the Before the first time you run *mu index*, you must run *mu init* to initialize the
database. database.
*index* understands Maildirs as defined by Daniel Bernstein for *qmail(7)*. In *index* understands Maildirs as defined by Daniel Bernstein for
addition, it understands recursive Maildirs (Maildirs within Maildirs), {{{man-link(qmail,7)}}}. In addition, it understands recursive Maildirs
Maildir++. It also supports VFAT-based Maildirs which use =!= or =;= as the (Maildirs within Maildirs), Maildir++. It also supports VFAT-based Maildirs
separators instead of =:=. which use *!* or *;* as the separators instead of *:*.
E-mail messages which are not stored in something resembling a maildir E-mail messages which are not stored in something resembling a maildir
leaf-directory (=cur= and =new=) are ignored, as are the cache directories for leaf-directory (_cur_ and _new_) are ignored, as are the cache directories for
=notmuch= and =gnus=, and any dot-directory. _notmuch_ and _gnus_, and any dot-directory.
Symlinks are followed, and the directories can be spread over multiple Symlinks are followed, and the directories can be spread over multiple
filesystems; however note that moving files around is much faster when multiple filesystems; however note that moving files around is much faster when multiple
filesystems are not involved. Be careful to avoid self-referential symlinks! filesystems are not involved. Be careful to avoid self-referential symlinks!
If there is a file called =.noindex= in a directory, the contents of that If there is a file called _.noindex_ in a directory, the contents of that
directory and all of its subdirectories will be ignored. This can be useful to directory and all of its subdirectories will be ignored. This can be useful to
exclude certain directories from the indexing process, for example directories exclude certain directories from the indexing process, for example directories
with spam-messages. with spam-messages.
If there is a file called =.noupdate= in a directory, the contents of that If there is a file called _.noupdate_ in a directory, the contents of that
directory and all of its subdirectories will be ignored. This can be useful to directory and all of its subdirectories will be ignored. This can be useful to
speed up things you have some maildirs that never change. speed up things you have some maildirs that never change.
=.noupdate= does not affect already-indexed message: you can still search for _.noupdate_ does not affect already-indexed message: you can still search for
them. =.noupdate= is ignored when you start indexing with an empty database (such them. _.noupdate_ is ignored when you start indexing with an empty database (such
as directly after =mu init=). as directly after *mu init*).
There also the option *--lazy-check* which can greatly speed up indexing; see There also the option *--lazy-check* which can greatly speed up indexing; see
below for details. below for details.
@ -54,7 +55,7 @@ the `PERFORMANCE (i,ii,iii)' below for more information.
The optional `phase two' of the indexing-process is the removal of messages from The optional `phase two' of the indexing-process is the removal of messages from
the database for which there is no longer a corresponding file in the Maildir. the database for which there is no longer a corresponding file in the Maildir.
If you do not want this, you can use ~-n~, ~--nocleanup~. If you do not want this, you can use *-n*, *--nocleanup*.
When *mu index* catches one of the signals *SIGINT*, *SIGHUP* or *SIGTERM* (e.g., when When *mu index* catches one of the signals *SIGINT*, *SIGHUP* or *SIGTERM* (e.g., when
you press Ctrl-C during the indexing process), it attempts to shutdown you press Ctrl-C during the indexing process), it attempts to shutdown
@ -65,22 +66,19 @@ terminate immediately.
* INDEX OPTIONS * INDEX OPTIONS
** --lazy-check ** --lazy-check
In lazy-check mode, *mu* does not consider messages for which the time-stamp
in lazy-check mode, *mu* does not consider messages for which the time-stamp
(ctime) of the directory they reside in has not changed since the previous (ctime) of the directory they reside in has not changed since the previous
indexing run. This is much faster than the non-lazy check, but won't update indexing run. This is much faster than the non-lazy check, but won't update
messages that have change (rather than having been added or removed), since messages that have change (rather than having been added or removed), since
merely editing a message does not update the directory time-stamp. Of course, merely editing a message does not update the directory time-stamp. Of course,
you can run *mu-index* occasionally without ~--lazy-check~, to pick up such you can run *mu-index* occasionally without *--lazy-check*, to pick up such
messages. messages.
** --nocleanup ** --nocleanup
Disable the database cleanup that *mu* does by default after indexing.
disable the database cleanup that *mu* does by default after indexing.
** --reindex ** --reindex
Perform a complete reindexing of all the messages in the maildir.
perform a complete reindexing of all the messages in the maildir.
#+include: "muhome.inc" :minlevel 2 #+include: "muhome.inc" :minlevel 2
@ -215,4 +213,8 @@ least for now, the latest code is both the fastest and the most featureful!
* SEE ALSO * SEE ALSO
*maildir(5)*, *mu(1)*, *mu-init(1)*, *mu-find(1)*, *mu-cfind(1)* {{{man-link(maildir,5)}}},
{{{man-link(mu,1)}}},
{{{man-link(mu-init,1)}}},
{{{man-link(mu-find,1)}}},
{{{man-link(mu-cfind,1)}}}

View File

@ -1,5 +1,6 @@
#+TITLE: MU INFO #+TITLE: MU INFO
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
@ -7,18 +8,18 @@ mu-info - show information
* SYNOPSIS * SYNOPSIS
*mu [common options] info [<topic>]* *mu* [_COMMON OPTIONS_] *info* [_TOPIC_]
* DESCRIPTION * DESCRIPTION
~mu info~ is the ~mu~ command for getting information about various topics: *mu info* is the *mu* command for getting information about various topics:
- *mu*: general mu build information (default) - *mu*: general *mu* build information (default)
- *store*: information about the message store - *store*: information about the message store
- *fields*: table with all the query fields and flags - *fields*: table with all the query fields and flags
- *maildirs*: list all maildirs under the store's root-maildir - *maildirs*: list all maildirs under the store's root-maildir
Note that while running (e.g. ~mu4e~), some of the ~store~ information can be Note that while running (e.g. ~mu4e~), some of the *store* information can be
delayed due to database caching. delayed due to database caching.
#+include: "common-options.inc" :minlevel 1 #+include: "common-options.inc" :minlevel 1
@ -29,4 +30,4 @@ delayed due to database caching.
* SEE ALSO * SEE ALSO
*mu(1)* {{{man-link(mu,1)}}}

View File

@ -1,75 +1,70 @@
#+TITLE: MU INIT #+TITLE: MU INIT
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
mu-init - initialize the mu message database mu-init - initialize the *mu* message database
* SYNOPSIS * SYNOPSIS
*mu [common-options] init [options]* *mu* [_COMMON-OPTIONS_] *init* [_OPTIONS_]
* DESCRIPTION * DESCRIPTION
*mu init* is the subcommand for setting up the mu message database. After *mu init* *mu init* is the subcommand for setting up the *mu* message database. After *mu init*
has completed, you can run *mu index* has completed, you can run *mu index*
* INIT OPTIONS * INIT OPTIONS
** -m, --maildir=<maildir> ** -m, --maildir _maildir_
Use _maildir_ as the root-maildir.
use =<maildir>= as the root-maildir. By default, *mu* uses the *MAILDIR* environment; if it is not set, it uses _~/Maildir_
if it is an existing directory. If neither of those can be used, the *--maildir*
By default, *mu* uses the *MAILDIR* environment; if it is not set, it uses =~/Maildir=
if it is an existing directory. If neither of those can be used, the ~--maildir~
option is required; it must be an absolute path (but ~~/~ expansion is option is required; it must be an absolute path (but ~~/~ expansion is
performed). performed).
** --my-address=<email-address-or-regex> ** --my-address _email-address-or-regex_
Specifies that some e-mail address is `my-address' (the option can be used
specifies that some e-mail address is `my-address' (the option can be used
multiple times). Any message in which at least one of the contact fields multiple times). Any message in which at least one of the contact fields
contains such an address is considered a `personal' messages; this can then be contains such an address is considered a `personal' messages; this can then be
used for filtering in *mu-find(1)*, *mu-cfind(1)* and *mu4e*, e.g. to filter-out used for filtering in {{{man-link(mu-find,1)}}}, {{{man-link(mu-cfind,1)}}} and
mailing list messages. *mu4e*, e.g. to filter-out mailing list messages.
=<email-address-or-regex>= can be either a plain e-mail address (such as _email-address-or-regex_ can be either a plain e-mail address (such as
*foo@example.com*), or a basic PCRE regular-expression (see *pcre(3)* for details), *foo@example.com*), or a basic PCRE regular-expression (see
wrapped in */* (such as =/foo-.*@example\\.com/=). Depending on your shell, the {{{man-link(pcre,3)}}} for details), wrapped in */* (such as
argument may need to be quoted. =/foo-.*@example\\.com/=). Depending on your shell, the argument may need to be
quoted.
** --ignored-address=<email-address-or-regex> ** --ignored-address _email-address-or-regex_
Specifies that some e-mail address is to be ignored from the contacts-cache (the
specifies that some e-mail address is to be ignored from the contacts-cache (the
option can be used multiple times). Such addresses then cannot be found with option can be used multiple times). Such addresses then cannot be found with
*mu-cfind(1)* or in the Mu4e contacts cache. {{{man-link(mu-cfind,1)}}} or in the Mu4e contacts cache.
=<my-email-address>= can be either a plain e-mail address or a regexp, just like _my-email-address_ can be either a plain e-mail address or a regexp, just like
for the =--my-address= option. for the *--my-address* option.
** --max-message-size=<size> ** --max-message-size _size_
Specifies the maximum size for an e-mail message. Usually, the default of
specifies the maximum size for an e-mail message. Usually, the default of
100000000 bytes should be fine. 100000000 bytes should be fine.
** --batch-size=<size> ** --batch-size _size_
The number of changes after which they are committed to the database; decreasing
the number of changes after which they are committed to the database; decreasing
the value reduces the memory requirements, at the cost of make indexing the value reduces the memory requirements, at the cost of make indexing
substantially slower. Usually, the default of 250000 should be fine. substantially slower. Usually, the default of 250000 should be fine.
Batch-size 0 is interpreted as `use the default'. Batch-size 0 is interpreted as `use the default'.
** --support-ngrams ** --support-ngrams
Whether to enable support for using ngrams in indexing and query parsing; this
whether to enable support for using ngrams in indexing and query parsing; this
can be useful for languages without explicit word breaks, such as can be useful for languages without explicit word breaks, such as
Chinese/Japanese/Korean. See *NGRAM SUPPORT* below for details. Chinese/Japanese/Korean. See *NGRAM SUPPORT* below for details.
** --reinit ** --reinit
Reinitialize the database from an earlier version; that is, create a new empty
reinitialize the database from an earlier version; that is, create a new empty database with the existing settings. This cannot be combined with the other *init*
database with the existing settings. This cannot be combined with the other ~init~
options. options.
#+include: "muhome.inc" :minlevel 2 #+include: "muhome.inc" :minlevel 2
@ -83,7 +78,7 @@ query-parsing; it is not enabled by default, and is recommended only if you need
to search for messages written in such languages. to search for messages written in such languages.
When enabled, *mu* automatically uses ngrams automatically. Xapian environment When enabled, *mu* automatically uses ngrams automatically. Xapian environment
variables such as ~XAPIAN_CJK_NGRAM~ are ignored. variables such as *XAPIAN_CJK_NGRAM* are ignored.
#+include: "exit-code.inc" :minlevel 1 #+include: "exit-code.inc" :minlevel 1
@ -97,4 +92,7 @@ $ mu init --maildir=~/Maildir --my-address=alice@example.com --my-address=bob@ex
* SEE ALSO * SEE ALSO
*mu-index(1)*, *mu-find(1)*, *mu-cfind(1)*, *pcre(3)* {{{man-link(mu-index,1)}}},
{{{man-link(mu-find,1)}}},
{{{man-link(mu-cfind,1)}}},
{{{man-link(pcre,3)}}}

View File

@ -1,5 +1,6 @@
#+TITLE: MU MKDIR #+TITLE: MU MKDIR
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
@ -7,23 +8,24 @@ mu-mkdir - create a new Maildir
* SYNOPSIS * SYNOPSIS
*mu [common-options] mkdir [options] <dir> [<dirs>]* *mu* [_COMMON-OPTIONS_] *mkdir* [_OPTIONS_] _DIR_...
* DESCRIPTION * DESCRIPTION
*mu mkdir* is the command for creating Maildirs as per *maildir(5)*. A maildir is a *mu mkdir* is the command for creating Maildirs as per
a directory with subdirectories ~new~, ~cur~ and ~tmp~. {{{man-link(maildir,5)}}}. A maildir is a a directory with subdirectories _new_,
_cur_ and _tmp_.
The command does not use the mu database. The command does not use the *mu* database.
If creation fails for any reason, *no* attempt is made to remove any parts that If creation fails for any reason, *no* attempt is made to remove any parts that
were created. This is for safety reasons. were created. This is for safety reasons.
* MKDIR OPTIONS * MKDIR OPTIONS
** --mode=<mode> ** --mode _mode_
set the file access mode for the new maildir(s) as in *chmod(1)*. The default Set the file access mode for the new maildir(s) as in
is 0755. {{{man-link(chmod,1)}}}. The default is 0755.
#+include: "common-options.inc" :minlevel 1 #+include: "common-options.inc" :minlevel 1
@ -33,10 +35,11 @@ is 0755.
$ mu mkdir tom dick harry $ mu mkdir tom dick harry
#+end_example #+end_example
creates three maildirs, =tom=, =dick= and =harry=. creates three maildirs, _tom_, _dick_ and _harry_.
#+include: "prefooter.inc" :minlevel 1 #+include: "prefooter.inc" :minlevel 1
* SEE ALSO * SEE ALSO
*maildir(5)*, *chmod(1)* {{{man-link(maildir,5)}}},
{{{man-link(chmod,1)}}}

View File

@ -1,5 +1,6 @@
#+TITLE: MU MOVE #+TITLE: MU MOVE
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
@ -7,7 +8,7 @@ mu-move - move a message file or change its flags
* SYNOPSIS * SYNOPSIS
*mu [common-options] move [options] <src> [--flags=<flags>] [<target>]* *mu* [_COMMON-OPTIONS_] *move* [_OPTIONS_] _SRC_ [--flags=_FLAGS_] [_TARGET_]
* DESCRIPTION * DESCRIPTION
@ -17,43 +18,40 @@ For any change, both the message file in the file system as well as its
representation in the database are updated accordingly. representation in the database are updated accordingly.
The source message file and target-maildir must reside under the root-maildir The source message file and target-maildir must reside under the root-maildir
for mu's database (see *mu info store*). for *mu*'s database (see *mu info store*).
* MOVE OPTIONS * MOVE OPTIONS
** --flags=<flags> ** --flags _flags_
Specify the new message flags. See *FLAGS* for details.
specify the new message flags. See *FLAGS* for details.
** --change-name ** --change-name
Change the basename of the message file when moving; this can be useful when
change the basename of the message file when moving; this can be useful when using some external tools such as {{{man-link(mbsync,1)}}} which otherwise get
using some external tools such as *mbsync(1)* which otherwise get confused confused
** --update-dups ** --update-dups
Update the flags of duplicate messages too, where "duplicate messages" are
update the flags of duplicate messages too, where "duplicate messages" are
defined as all message that share the same message-id. Note that the defined as all message that share the same message-id. Note that the
Draft/Flagged/Trashed flags are deliberately _not_ changed if you change those on Draft/Flagged/Trashed flags are deliberately _not_ changed if you change those on
the source message. the source message.
** --dry-run,-n ** -n, --dry-run
Print the target filename(s), but don't change anything.
print the target filename(s), but don't change anything. Note that with the *--change-name*, the target name is not constant, so you cannot
Note that with the ~--change-name~, the target name is not constant, so you cannot
use a dry-run to predict the exact name when doing a `real' run. use a dry-run to predict the exact name when doing a `real' run.
#+include: "common-options.inc" :minlevel 1 #+include: "common-options.inc" :minlevel 1
* FLAGS * FLAGS
(Note: if you are not familiar with Maildirs, please refer to the *maildir(5)* (Note: if you are not familiar with Maildirs, please refer to the
man-page, or see http://cr.yp.to/proto/maildir.html) {{{man-link(maildir,5)}}} man-page, or see http://cr.yp.to/proto/maildir.html)
The message flags specify the Maildir-metadata for a message and are represented The message flags specify the Maildir-metadata for a message and are represented
by uppercase letters at the end of the message file name for all `non-new' by uppercase letters at the end of the message file name for all `non-new'
messages, i.e. messages that live in the ~cur/~ sub-directory of a Maildir. messages, i.e. messages that live in the _cur/_ sub-directory of a Maildir.
#+ATTR_MAN: :disable-caption t #+ATTR_MAN: :disable-caption t
| Flag | Meaning | | Flag | Meaning |
@ -65,8 +63,8 @@ messages, i.e. messages that live in the ~cur/~ sub-directory of a Maildir.
| S | Seen message | | S | Seen message |
| T | Trashed; to be deleted later | | T | Trashed; to be deleted later |
New messages (in the ~new/~ sub-directory) do not have flags encoded in their New messages (in the _new/_ sub-directory) do not have flags encoded in their
file-name; but we *mu* uses `N' in the ~--flags~ to represent that: file-name; but we *mu* uses `N' in the *--flags* to represent that:
#+ATTR_MAN: :disable-caption t #+ATTR_MAN: :disable-caption t
| Flag | Meaning | | Flag | Meaning |
@ -75,24 +73,24 @@ file-name; but we *mu* uses `N' in the ~--flags~ to represent that:
Thus, changing flags means changing the letters at the end of the message Thus, changing flags means changing the letters at the end of the message
file-name, except when setting or removing the `N' (new) flag. Setting or file-name, except when setting or removing the `N' (new) flag. Setting or
un-setting the New flag causes the message is to be moved from ~cur/~ to ~new/~ or un-setting the New flag causes the message is to be moved from _cur/_ to _new/_ or
vice-versa, respectively. When marking a message as New, it looses the other vice-versa, respectively. When marking a message as New, it looses the other
flags. flags.
* ABSOLUTE AND RELATIVE FLAGS * ABSOLUTE AND RELATIVE FLAGS
You can specify the flags with the ~--flags~ parameter, and do either with either You can specify the flags with the *--flags* parameter, and do either with either
*absolute* or *relative* flags. *absolute* or *relative* flags.
Absolute flags just specify the new flags by their letters; e.g. to specify a Absolute flags just specify the new flags by their letters; e.g. to specify a
/Trashed/, /Seen/, /Replied/ message, you'd use ~--flags STR~. /Trashed/, /Seen/, /Replied/ message, you'd use *--flags STR*.
#+end_example #+end_example
Relative flags are relative to the current flags for some message, and each of Relative flags are relative to the current flags for some message, and each of
the flags is prefixed with either ~+~ ("add this flag") or ~-~ ("remove this flag"). the flags is prefixed with either *+* ("add this flag") or *-* ("remove this flag").
So to add the /Seen/ flag and remove the /Draft/ flag from whatever the message So to add the /Seen/ flag and remove the /Draft/ flag from whatever the message
already has, ~--flags +S-D~. already has, *--flags +S-D*.
You cannot combine relative and relative flags. You cannot combine relative and relative flags.
@ -114,4 +112,4 @@ $ mu move /home/user/Maildir/project1/cur/1695559560.a73985881f4611ac2.hostname!
* SEE ALSO * SEE ALSO
*maildir(5)* {{{man-link(maildir,5)}}}

View File

@ -1,5 +1,6 @@
#+TITLE: MU QUERY #+TITLE: MU QUERY
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
@ -7,7 +8,7 @@ mu-query - a language for finding messages in *mu* databases.
* DESCRIPTION * DESCRIPTION
The mu query language is the language used by *mu find* and *mu4e* to find messages The *mu* query language is the language used by *mu find* and *mu4e* to find messages
in *mu*'s Xapian database. The language is quite similar to Xapian's default in *mu*'s Xapian database. The language is quite similar to Xapian's default
query-parser, but is an independent implementation that is customized for the query-parser, but is an independent implementation that is customized for the
mu/mu4e use-case. mu/mu4e use-case.
@ -16,7 +17,7 @@ Here, we give a structured but informal overview of the query language and
provide examples. As a companion to this, we recommend the *mu fields* and *mu provide examples. As a companion to this, we recommend the *mu fields* and *mu
flags* commands to get an up-to-date list of the available fields and flags. flags* commands to get an up-to-date list of the available fields and flags.
Furthermore, *mu find* provides the ~--analyze~ option, which shows how *mu* Furthermore, *mu find* provides the *--analyze* option, which shows how *mu*
interprets your query; see the *ANALYZING QUERIES* section below. interprets your query; see the *ANALYZING QUERIES* section below.
*NOTE:* if you use queries on the command-line (say, for *mu find*), you need to *NOTE:* if you use queries on the command-line (say, for *mu find*), you need to
@ -84,7 +85,7 @@ Note that a =pure not= - e.g. searching for *not apples* is quite a `heavy' quer
* REGULAR EXPRESSIONS AND WILDCARDS * REGULAR EXPRESSIONS AND WILDCARDS
The language supports matching basic PCRE regular expressions, see *pcre(3)*. The language supports matching basic PCRE regular expressions, see {{{man-link(pcre,3)}}}.
Regular expressions are enclosed in *//*. Some examples: Regular expressions are enclosed in *//*. Some examples:
@ -116,7 +117,7 @@ Regular expressions can be useful, but are relatively slow.
We already saw a number of search fields, such as *subject:* and *body:*. For the We already saw a number of search fields, such as *subject:* and *body:*. For the
full table with all details, including single-char shortcuts, try the command: full table with all details, including single-char shortcuts, try the command:
~mu info fields~. *mu info fields*.
#+ATTR_MAN: :disable-caption t #+ATTR_MAN: :disable-caption t
#+begin_example #+begin_example
@ -153,7 +154,7 @@ full table with all details, including single-char shortcuts, try the command:
+-----------+----------+----------+-----------------------------+ +-----------+----------+----------+-----------------------------+
#+end_example #+end_example
(*) The language code for the text-body if found. This works only if ~mu~ was (*) The language code for the text-body if found. This works only if *mu* was
built with CLD2 support. built with CLD2 support.
There are also the special fields *contact:*, which matches all contact-fields There are also the special fields *contact:*, which matches all contact-fields
@ -280,7 +281,7 @@ prio:high
The Maildir field describes the directory path starting *after* the Maildir root The Maildir field describes the directory path starting *after* the Maildir root
directory, and before the =/cur/= or =/new/= part. So, for example, if there's a directory, and before the =/cur/= or =/new/= part. So, for example, if there's a
message with the file name =~/Maildir/lists/running/cur/1234.213:2,=, you could message with the file name _~/Maildir/lists/running/cur/1234.213:2,_, you could
find it (and all the other messages in that same maildir) with: find it (and all the other messages in that same maildir) with:
#+begin_example #+begin_example
maildir:/lists/running maildir:/lists/running
@ -360,10 +361,10 @@ for "cld2-support*.
* ANALZYING QUERIES * ANALZYING QUERIES
Despite all the excellent documentation, in some cases it can be non-obvious how Despite all the excellent documentation, in some cases it can be non-obvious how
~mu~ interprets your query. For that, you can ask ~mu~ to analyze the query -- that *mu* interprets your query. For that, you can ask *mu* to analyze the query -- that
is, show how ~mu~ interprets the query. is, show how *mu* interprets the query.
This uses the the ~--analyze~ option to *mu find*. This uses the the *--analyze* option to *mu find*.
#+begin_example #+begin_example
$ mu find subject:wombat AND date:3m.. size:..2000 --analyze $ mu find subject:wombat AND date:3m.. size:..2000 --analyze
,* query: ,* query:
@ -381,4 +382,6 @@ interprets your query.
* SEE ALSO * SEE ALSO
*mu-find(1)*, *mu-info(1), *pcre(3)* {{{man-link(mu-find,1)}}},
{{{man-link(mu-info,1)}}},
{{{man-link(pcre,3)}}}

View File

@ -1,5 +1,6 @@
#+TITLE: MU REMOVE #+TITLE: MU REMOVE
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
@ -7,7 +8,7 @@ mu-remove - remove messages from the database.
* SYNOPSIS * SYNOPSIS
*mu [common-options] remove [options] <file> [<files>]* *mu* [_COMMON-OPTIONS_] *remove* [_OPTIONS_] _FILE_...
* DESCRIPTION * DESCRIPTION
@ -24,4 +25,6 @@ their filename. The files do not have to exist in the file system.
* SEE ALSO * SEE ALSO
*mu(1)*, *mu-index(1)*, *mu-add(1)* {{{man-link(mu,1)}}},
{{{man-link(mu-index,1)}}},
{{{man-link(mu-add,1)}}}

View File

@ -1,17 +1,18 @@
#+TITLE: MU-SERVER #+TITLE: MU-SERVER
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
mu-server - the mu backend for the mu4e e-mail client mu-server - the *mu* backend for the mu4e e-mail client
* SYNOPSIS * SYNOPSIS
mu [common-options] server *mu* [_COMMON-OPTIONS_] *server*
* DESCRIPTION * DESCRIPTION
*mu server* starts a simple shell in which one can query and manipulate the mu *mu server* starts a simple shell in which one can query and manipulate the *mu*
database. The output uses s-expressions. *mu server* is not meant for use by database. The output uses s-expressions. *mu server* is not meant for use by
humans, except for debugging purposes. Instead, it is designed specifically for humans, except for debugging purposes. Instead, it is designed specifically for
the *mu4e* e-mail client. the *mu4e* e-mail client.
@ -49,15 +50,12 @@ UTF-8 (in which the s-expressions are encoded).
* SERVER OPTIONS * SERVER OPTIONS
** --commands ** --commands
List available commands (and try with *--verbose*).
List available commands (and try with ~--verbose~) ** --eval _expression_
Evaluate a mu4e server s-expression.
** --eval <expression>
Evaluate a mu4e server s-expression
** --allow-temp-file ** --allow-temp-file
If set, allow for the output of some commands to use temp-files rather than If set, allow for the output of some commands to use temp-files rather than
directly through the emacs process input/output. This is noticeably faster for directly through the emacs process input/output. This is noticeably faster for
commands with a lot of output, esp. when the the temp-file uses a in-memory commands with a lot of output, esp. when the the temp-file uses a in-memory
@ -71,7 +69,7 @@ does; we take overall time of 50 such requests:
#+begin_src sh #+begin_src sh
time build/mu/mu server --allow-temp-file --eval '(find :query "\"\"" :include-related t :threads t :maxnum 50000)' >/dev/null time build/mu/mu server --allow-temp-file --eval '(find :query "\"\"" :include-related t :threads t :maxnum 50000)' >/dev/null
#+end_src #+end_src
(and ~--allow-temp-file~ for 1.11) (and *--allow-temp-file* for 1.11)
#+ATTR_MAN: :disable-caption t #+ATTR_MAN: :disable-caption t
| release | time (sec) | | release | time (sec) |
@ -88,4 +86,5 @@ time build/mu/mu server --allow-temp-file --eval '(find :query "\"\"" :include-r
#+include: "prefooter.inc" :minlevel 1 #+include: "prefooter.inc" :minlevel 1
* SEE ALSO * SEE ALSO
*mu(1)*
{{{man-link(mu,1)}}}

View File

@ -1,5 +1,6 @@
#+TITLE: MU VERIFY #+TITLE: MU VERIFY
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
@ -7,7 +8,7 @@ mu-verify - verify message signatures and display information about them
* SYNOPSIS * SYNOPSIS
*mu [common-options] verify [options] [<file> ... ]* *mu* [_COMMON-OPTIONS_] *verify* [_OPTIONS_] [_FILE_...]
* DESCRIPTION * DESCRIPTION
@ -21,11 +22,11 @@ standard-input.
* VERIFY OPTIONS * VERIFY OPTIONS
** -r, --auto-retrieve ** -r, --auto-retrieve
attempt to find keys online (see the *auto-key-retrieve* option in the *gnupg(1)* Attempt to find keys online (see the *auto-key-retrieve* option in the
documentation). {{{man-link(gnupg,1)}}} documentation).
** decrypt ** --decrypt
attempt to decrypt the message Attempt to decrypt the message.
#+include: "common-options.inc" :minlevel 1 #+include: "common-options.inc" :minlevel 1
@ -52,4 +53,4 @@ which does not give any output unless there is an error.
* SEE ALSO * SEE ALSO
*mu(1)* {{{man-link(mu,1)}}}

View File

@ -1,5 +1,6 @@
#+TITLE: MU VIEW #+TITLE: MU VIEW
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
@ -7,12 +8,12 @@ mu-view - display an e-mail message file
* SYNOPSIS * SYNOPSIS
mu [common options] view [options] [<file> ...] *mu* [_COMMON OPTIONS_] *view* [_OPTIONS_] [_FILE_...]
* DESCRIPTION * DESCRIPTION
*mu view* is the *mu* command for displaying e-mail message files. It works on *mu view* is the *mu* command for displaying e-mail message files. It works on
message files and does =not= require the message to be indexed in the database. message files and does _not_ require the message to be indexed in the database.
The command shows some common headers (From:, To:, Cc:, Bcc:, Subject: and The command shows some common headers (From:, To:, Cc:, Bcc:, Subject: and
Date:), the list of attachments and either the plain-text or html body of the Date:), the list of attachments and either the plain-text or html body of the
@ -23,32 +24,32 @@ standard-input.
* VIEW OPTIONS * VIEW OPTIONS
** --format,-o = <format> ** -o, --format _format_
use the given output format, one of: Use the given output format, one of:
- ~plain~ - use the plain-text body; this is the default - *plain*: use the plain-text body; this is the default,
- ~html~ - use the HTML body - *html*: use the HTML body,
- ~sexp~ - show the S-expression representation of the message - *sexp*: show the S-expression representation of the message.
** --summary-len=<number> ** --summary-len _number_
instead of displaying the full message, output a summary based upon the first Instead of displaying the full message, output a summary based upon the first
=<number>= lines of the message. _number_ lines of the message.
** --terminate ** --terminate
terminate messages with \\f (=form-feed=) characters when displaying them. This is Terminate messages with \\f (=form-feed=) characters when displaying them. This is
useful when you want to further process them. useful when you want to further process them.
** --decrypt ** --decrypt
attempt to decrypt encrypted message bodies. This is only possible if *mu* Attempt to decrypt encrypted message bodies. This is only possible if *mu*
was built with crypto-support. was built with crypto-support.
** --auto-retrieve ** --auto-retrieve
attempt to retrieve crypto-keys automatically from the network, when needed. Attempt to retrieve crypto-keys automatically from the network, when needed.
#+include: "common-options.inc" :minlevel 1 #+include: "common-options.inc" :minlevel 1
* BUGS #+include: "prefooter.inc" :minlevel 1
* SEE ALSO * SEE ALSO
*mu(1)* {{{man-link(mu,1)}}}

View File

@ -1,5 +1,6 @@
#+TITLE: MU #+TITLE: MU
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@" #+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc
* NAME * NAME
@ -8,75 +9,75 @@ index and search e-mail messages.
* SYNOPSIS * SYNOPSIS
~mu~ [COMMON-OPTIONS] [[COMMAND] [COMMAND-OPTIONS]] *mu* [_COMMON-OPTIONS_] [[_COMMAND_] [_COMMAND-OPTIONS_]]
For information about the common options, see *COMMON OPTIONS*. For information about the common options, see *COMMON OPTIONS*.
* DESCRIPTION * DESCRIPTION
~mu~ is the general command that shows help about the specific commands: *mu* is the general command that shows help about the specific commands:
- ~add~: add specific messages to the database. - *add*: add specific messages to the database.
- ~cfind~: find contacts - *cfind*: find contacts
- ~extract~: extract attachments and other MIME-parts - *extract*: extract attachments and other MIME-parts
- ~find~: find messages in the database - *find*: find messages in the database
- ~help~: get help for some command - *help*: get help for some command
- ~index~: (re)index the messages in a Maildir - *index*: (re)index the messages in a Maildir
- ~info~: show information about the mu database - *info*: show information about the *mu* database
- ~init~: initialize the mu database - *init*: initialize the *mu* database
- ~mkdir~: create a new Maildir - *mkdir*: create a new Maildir
- ~remove~: remove specific messages from the database - *remove*: remove specific messages from the database
- ~server~: start a server process (for ~mu4e~-internal use) - *server*: start a server process (for ~mu4e~-internal use)
- ~view~: view a specific message - *view*: view a specific message
Each of the commands have their own manpage ~mu-<command>~. Each of the commands have their own manpage *mu-<command>*.
~mu~ is a set of tools for dealing with Maildirs and the e-mail messages *mu* is a set of tools for dealing with Maildirs and the e-mail messages
in them. in them.
~mu~'s main purpose is to enable searching of e-mail messages. It *mu*'s main purpose is to enable searching of e-mail messages. It
does so by periodically scanning a Maildir directory tree and does so by periodically scanning a Maildir directory tree and
analyzing the e-mail messages found (this is called `indexing'). The analyzing the e-mail messages found (this is called `indexing'). The
results of this analysis are stored in a database, which can then be results of this analysis are stored in a database, which can then be
queried. queried.
In addition to indexing and searching, ~mu~ also offers In addition to indexing and searching, *mu* also offers
functionality for viewing messages, extracting attachments and functionality for viewing messages, extracting attachments and
creating maildirs, and searching and exporting contact information. creating maildirs, and searching and exporting contact information.
~mu~ can be used from the command line or can be integrated with various *mu* can be used from the command line or can be integrated with various
e-mail clients. e-mail clients.
This manpage gives a general overview of the available commands This manpage gives a general overview of the available commands
(~index~, ~find~, etc.); each ~mu~ command has its own (*index*, *find*, etc.); each *mu* command has its own
man-page as well. man-page as well.
* COLORS * COLORS
Some ~mu~ commands support colorized output, and do so by default. If you don't Some *mu* commands support colorized output, and do so by default. If you don't
want colors, you can use ~--nocolor~. want colors, you can use *--nocolor*.
* ENCODING * ENCODING
~mu~'s output is in the current locale, with the exceptions of the output *mu*'s output is in the current locale, with the exceptions of the output
specifically meant for output to UTF8-encoded files. In practice, this means specifically meant for output to UTF8-encoded files. In practice, this means
that the output of commands ~index~, ~view~, ~extract~ is always encoded according to that the output of commands *index*, *view*, *extract* is always encoded according to
the current locale. the current locale.
The same is true for ~find~ and ~cfind~, with some exceptions, where The same is true for *find* and *cfind*, with some exceptions, where
the output is always UTF-8, regardless of the locale: the output is always UTF-8, regardless of the locale:
- For ~cfind~ the exception is ~--format=bbdb~. This is hard-coded to UTF-8, and as - For *cfind* the exception is *--format=bbdb*. This is hard-coded to UTF-8, and as
such specified in the output-file, so emacs/bbdb can handle it correctly such specified in the output-file, so emacs/bbdb can handle it correctly
without guessing. without guessing.
- For ~find~ the output is encoded according the locale for ~--format=plain~ (the - For *find* the output is encoded according the locale for *--format=plain* (the
default), and UTF-8 for all other formats. default), and UTF-8 for all other formats.
* DATABASE AND FILE * DATABASE AND FILE
The ~index~, ~find~, and ~cfind~ commands work with the database, while the other The *index*, *find*, and *cfind* commands work with the database, while the other
ones work on individual mail files. Hence, running ~view~, ~mkdir~ and ~extract~ does ones work on individual mail files. Hence, running *view*, *mkdir* and *extract* does
not require the mu database. not require the *mu* database.
#+include: "common-options.inc" :minlevel 1 #+include: "common-options.inc" :minlevel 1
@ -85,6 +86,18 @@ not require the mu database.
#+include: "prefooter.inc" :minlevel 1 #+include: "prefooter.inc" :minlevel 1
* SEE ALSO * SEE ALSO
~mu-add(1)~, ~mu-cfind(1)~, ~mu-extract(1)~, ~mu-find(1)~, ~mu-help(1)~, ~mu-index(1)~,
~mu-info(1)~, ~mu-init(1)~, ~mu-mkdir(1)~, ~mu-remove(1)~, ~mu-server(1)~, ~mu-view(1)~, {{{man-link(mu-add,1)}}},
~mu-query(7)~, ~mu-easy(1)~ {{{man-link(mu-cfind,1)}}},
{{{man-link(mu-extract,1)}}},
{{{man-link(mu-find,1)}}},
{{{man-link(mu-help,1)}}},
{{{man-link(mu-index,1)}}},
{{{man-link(mu-info,1)}}},
{{{man-link(mu-init,1)}}},
{{{man-link(mu-mkdir,1)}}},
{{{man-link(mu-remove,1)}}},
{{{man-link(mu-server,1)}}},
{{{man-link(mu-view,1)}}},
{{{man-link(mu-query,7)}}},
{{{man-link(mu-easy,1)}}}

View File

@ -1,10 +1,10 @@
** --muhome ** --muhome
use a non-default directory to store and read the database, write the logs, etc. Use a non-default directory to store and read the database, write the logs, etc.
By default, ~mu~ uses the XDG Base Directory Specification (e.g. on GNU/Linux this By default, *mu* uses the XDG Base Directory Specification (e.g. on GNU/Linux this
defaults to =~/.cache/mu= and =~/.config/mu=). Earlier versions of ~mu~ defaulted to defaults to _~/.cache/mu_ and _~/.config/mu_). Earlier versions of *mu* defaulted to
=~/.mu=, which now requires =--muhome=~/.mu=. _~/.mu_, which now requires *--muhome=~/.mu*.
The environment variable ~MUHOME~ can be used as an alternative to ~--muhome~. The The environment variable *MUHOME* can be used as an alternative to *--muhome*. The
latter has precedence. latter has precedence.
# Local Variables: # Local Variables: