When re-initializing the store, automatically write the labels to a file in mu's cache, so user can later import them.
129 lines
4.7 KiB
Org Mode
129 lines
4.7 KiB
Org Mode
#+TITLE: MU INIT
|
||
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
|
||
#+include: macros.inc
|
||
|
||
* NAME
|
||
|
||
mu-init - initialize the *mu* message database
|
||
|
||
* SYNOPSIS
|
||
|
||
*mu* [_COMMON-OPTIONS_] *init* [_OPTIONS_]
|
||
|
||
* DESCRIPTION
|
||
|
||
*mu init* is the subcommand for setting up the *mu* message database. After *mu init*
|
||
has completed, you can run *mu index*.
|
||
|
||
* INIT OPTIONS
|
||
|
||
** -m, --maildir _maildir_
|
||
Use _maildir_ as the root-maildir.
|
||
|
||
By default, *mu* uses the *MAILDIR* environment to find the root-maildir. 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 performed).
|
||
|
||
** --personal-address _email-address-or-regex_
|
||
** --my-address _email-address-or-regex_ (alias)
|
||
Specifies that some e-mail address is a /personal/ address. The option can be used
|
||
multiple times, to specify all your addresses.
|
||
|
||
Any message in which at least one of the contact fields matches a personal
|
||
address, is considered a `personal' message; this can then be used for filtering
|
||
in {{{man-link(mu-find,1)}}}, {{{man-link(mu-cfind,1)}}} and *mu4e*, e.g. to
|
||
filter-out mailing list messages.
|
||
|
||
_email-address-or-regex_ can be either a plain e-mail address (such as
|
||
*foo@example.com*), or a basic PCRE regular-expression (see {{{man-link(pcre,3)}}}
|
||
for details), wrapped in */* (such as =/foo-.*@example\\.com/=). Depending on your
|
||
shell, the argument may need to be quoted.
|
||
|
||
A note of warning for *mu4e* users: any regular-expressions used with
|
||
=--with-address= are also used by *mu4e*. Unfortunately, PCRE regular expressions
|
||
are *not* generally compatible with Emacs regular expressions. For instance,
|
||
*(foo|bar)* in PCRE syntax has *\(foo\|bar\)* as its Emacs equivalent.
|
||
|
||
The good news is that *mu4e* can automatically translate the regular-expressions,
|
||
if you allow it to, by installing the *pcre2el* Elisp package. See the *mu4e*
|
||
documentation for further details.
|
||
|
||
** --ignored-address _email-address-or-regex_
|
||
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
|
||
{{{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
|
||
for the *--personal-address* option.
|
||
|
||
** --max-message-size _size_
|
||
Specifies the maximum size for an e-mail message. Usually, the default of
|
||
100000000 bytes should be fine.
|
||
|
||
** --batch-size _size_
|
||
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
|
||
substantially slower. Usually, the default of 250000 should be fine.
|
||
|
||
Batch-size 0 is interpreted as `use the default'.
|
||
|
||
** --support-ngrams
|
||
Whether to enable support for using ngrams in indexing and query parsing; this
|
||
can be useful for languages without explicit word breaks, such as
|
||
Chinese/Japanese/Korean. See *NGRAM SUPPORT* below for details.
|
||
|
||
** --reinit
|
||
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*
|
||
options.
|
||
|
||
When you have _labels_ defined for messages in your database, *mu* automatically exports those to file for importing later. See *RESTORING LABELS* below.
|
||
|
||
#+include: "muhome.inc" :minlevel 2
|
||
|
||
* NGRAM SUPPORT
|
||
|
||
*mu*'s underlying Xapian database supports `ngrams', which improve searching for
|
||
languages/scripts that do not have explicit word breaks, such as Chinese,
|
||
Japanese and Korean. It is fairly intrusive, and influences both indexing and
|
||
query-parsing; it is not enabled by default, and is recommended only if you need
|
||
to search for messages written in such languages.
|
||
|
||
When enabled, *mu* automatically uses ngrams automatically. Xapian environment
|
||
variables such as *XAPIAN_CJK_NGRAM* are ignored.
|
||
|
||
#+include: "exit-code.inc" :minlevel 1
|
||
|
||
* RESTORING LABELS
|
||
|
||
When you have any _labels_ defined for your database, *mu* automatically exports
|
||
those to a file in the *mu* cache directory; you see this in the ~--init~ output.
|
||
|
||
#+begin_example
|
||
$ mu init --reinit
|
||
exported labels to: /home/user/.cache/mu/mu-export-2025-08-16-13:43:27.txt
|
||
#+end_example
|
||
|
||
You can restore those labels _after_ re-indexing, e.g.,
|
||
#+begin_example
|
||
$ mu label import /home/user/.cache/mu/mu-export-2025-08-16-13:43:27.txt
|
||
#+end_example
|
||
|
||
Please see {{{man-link(mu-label,1)}}} for further details.
|
||
|
||
* EXAMPLE
|
||
#+begin_example
|
||
$ mu init --maildir=~/Maildir --my-address=alice@example.com --my-address=bob@example.com --ignored-address='/.*reply.*/'
|
||
#+end_example
|
||
|
||
#+include: "prefooter.inc" :minlevel 1
|
||
|
||
* SEE ALSO
|
||
|
||
{{{man-link(mu-index,1)}}},
|
||
{{{man-link(mu-find,1)}}},
|
||
{{{man-link(mu-label,1)}}},
|
||
{{{man-link(mu-cfind,1)}}},
|
||
{{{man-link(pcre,3)}}}
|