X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=doc%2Fnotmuch-emacs.rst;h=92a04d607b2e7fa966e1cf7b3a161cae89b3ee8d;hb=0f3b196144e91cd80d321d896c0b4bf6e0c62249;hp=189a51ad96f47552ffed0a27ec99677a9da84d98;hpb=349987668ae1da3ee30cdbe3a4acc11bb2219e0d;p=notmuch diff --git a/doc/notmuch-emacs.rst b/doc/notmuch-emacs.rst index 189a51ad..92a04d60 100644 --- a/doc/notmuch-emacs.rst +++ b/doc/notmuch-emacs.rst @@ -220,8 +220,41 @@ variables. .. emacsvar:: notmuch-search-result-format - Control how each thread of messages is presented in the - ``notmuch-show-mode`` buffer + |docstring::notmuch-search-result-format| + + If the car of an element in notmuch-search-result-format is a + function, insert the result of calling the function into the buffer. + + This allows a user to generate custom fields in the output of a + search result. For example, with the following settings, the first + few characters on each line of the search result are used to show + information about some significant tags associated with the thread. + + .. code:: lisp + + (defun -notmuch-result-flags (format-string result) + (let ((tags-to-letters '(("flagged" . "!") + ("unread" . "u") + ("mine" . "m") + ("sent" . "s") + ("replied" . "r"))) + (tags (plist-get result :tags))) + (format format-string + (mapconcat (lambda (t2l) + (if (member (car t2l) tags) + (cdr t2l) + " ")) + tags-to-letters "")))) + + (setq notmuch-search-result-format '((-notmuch-result-flags . "%s ") + ("date" . "%12s ") + ("count" . "%9s ") + ("authors" . "%-30s ") + ("subject" . "%s ") + ("tags" . "(%s)"))) + + See also :emacsvar:`notmuch-tree-result-format` and + :emacsvar:`notmuch-unthreaded-result-format`. .. emacsvar:: notmuch-search-oldest-first @@ -398,6 +431,28 @@ in :ref:`notmuch-search`. ``c ?`` Show all available copying commands +.. _emacs-show-duplicates: + +Dealing with duplicates +----------------------- + +If there are are multiple files with the same :mailheader:`Message-ID` +(see :any:`duplicate-files`), then :any:`notmuch-show` displays the +number of duplicates and identifies the current duplicate. In the +following example duplicate 3 of 5 is displayed. + +.. code-block:: + :emphasize-lines: 1 + + M. Mustermann (Sat, 30 Jul 2022 10:33:10 -0300) (inbox signed) 3/5 + Subject: Re: Multiple files per message in emacs + To: notmuch@notmuchmail.org + +.. el:define-key:: % + M-x notmuch-show-choose-duplicate + + |docstring::notmuch-show-choose-duplicate| + .. _notmuch-tree: notmuch-tree @@ -445,6 +500,41 @@ tags. As is the case with :ref:`notmuch-search`, the presentation of results can be controlled by the variable ``notmuch-search-oldest-first``. +.. emacsvar:: notmuch-tree-result-format + + |docstring::notmuch-tree-result-format| + + The following example shows how to optionally display recipients instead + of authors for sent mail (assuming the user is named Mustermann). + + .. code:: lisp + + (defun -notmuch-authors-or-to (format-string result) + (let* ((headers (plist-get result :headers)) + (to (plist-get headers :To)) + (author (plist-get headers :From)) + (face (if (plist-get result :match) + 'notmuch-tree-match-author-face + 'notmuch-tree-no-match-author-face))) + (propertize + (format format-string + (if (string-match "Mustermann" author) + (concat "To:" (notmuch-tree-clean-address to)) + author)) + 'face face))) + + (setq notmuch-tree-result-format + '(("date" . "%12s ") + (-notmuch-authors-or-to . "%-20.20s") + ((("tree" . "%s") + ("subject" . "%s")) + . " %-54s ") + ("tags" . "(%s)"))) + + See also :emacsvar:`notmuch-search-result-format` and + :emacsvar:`notmuch-unthreaded-result-format`. + + .. _notmuch-unthreaded: notmuch-unthreaded @@ -456,6 +546,13 @@ is presented. Keybindings are the same as :any:`notmuch-tree`. +.. emacsvar:: notmuch-unthreaded-result-format + + |docstring::notmuch-unthreaded-result-format| + + See also :emacsvar:`notmuch-search-result-format` and + :emacsvar:`notmuch-tree-result-format`. + Global key bindings =================== @@ -468,7 +565,7 @@ following key bindings: ``k`` Tagging operations using :ref:`notmuch-tag-jump` -``C-_`` ``C-/`` ``C-x u``: Undo previous tagging operation using :ref:`notmuch-tag-undo` +``C-_`` ``C-/`` ``C-x u``: Undo previous tagging operation using :any:`notmuch-tag-undo` .. _notmuch-jump: @@ -499,7 +596,6 @@ operations specified in ``notmuch-tagging-keys``; i.e. each |docstring::notmuch-tagging-keys| -.. _notmuch-tag-undo: notmuch-tag-undo ---------------- @@ -507,17 +603,20 @@ notmuch-tag-undo Each notmuch buffer supporting tagging operations (i.e buffers in :any:`notmuch-show`, :any:`notmuch-search`, :any:`notmuch-tree`, and :any:`notmuch-unthreaded` mode) keeps a local stack of tagging -operations. These can be undone via :emacscmd:`notmuch-tag-undo`. By default +operations. These can be undone via :any:`notmuch-tag-undo`. By default this is bound to the usual Emacs keys for undo. -.. emacscmd:: notmuch-tag-undo +.. el:define-key:: C-_ + C-/ + C-x u + M-x notmuch-tag-undo |docstring::notmuch-tag-undo| Buffer navigation ================= -.. emacscmd:: notmuch-cycle-notmuch-buffers +.. el:define-key:: M-x notmuch-cycle-notmuch-buffers |docstring::notmuch-cycle-notmuch-buffers| @@ -529,7 +628,7 @@ Configuration Importing Mail -------------- -.. emacscmd:: notmuch-poll +.. el:define-key:: M-x notmuch-poll |docstring::notmuch-poll|