+Display of messages can be controlled by the following variables; see also :ref:`show-large`.
+
+.. emacsvar:: notmuch-message-headers
+
+ |docstring::notmuch-message-headers|
+
+.. emacsvar:: notmuch-message-headers-visible
+
+ |docstring::notmuch-message-headers-visible|
+
+.. emacsvar:: notmuch-show-header-line
+
+ |docstring::notmuch-show-header-line|
+
+.. emacsvar:: notmuch-multipart/alternative-discouraged
+
+ Which mime types to hide by default for multipart messages.
+
+ Can either be a list of mime types (as strings) or a function
+ mapping a plist representing the current message to such a list.
+ The following example function would discourage `text/html` and
+ `multipart/related` generally, but discourage `text/plain` should
+ the message be sent from `whatever@example.com`.
+
+ .. code:: lisp
+
+ (defun my--determine-discouraged (msg)
+ (let* ((headers (plist-get msg :headers))
+ (from (or (plist-get headers :From) "")))
+ (cond
+ ((string-match "whatever@example.com" from)
+ (list "text/plain"))
+ (t
+ (list "text/html" "multipart/related")))))
+
+.. _show-large:
+
+Dealing with large messages and threads
+---------------------------------------
+
+If you are finding :ref:`notmuch-show` is annoyingly slow displaying
+large messages, you can customize
+:emacsvar:`notmuch-show-max-text-part-size`. If you want to speed up the
+display of large threads (with or without large messages), there are
+several options. First, you can display the same query in one of the
+other modes. :ref:`notmuch-unthreaded` is the most robust for
+extremely large queries, but :ref:`notmuch-tree` is also be faster
+than :ref:`notmuch-show` in general, since it only renders a single
+message a time. If you prefer to stay with the rendered thread
+("conversation") view of :ref:`notmuch-show`, you can customize the
+variables :emacsvar:`notmuch-show-depth-limit`,
+:emacsvar:`notmuch-show-height-limit` and
+:emacsvar:`notmuch-show-max-text-part-size` to limit the amount of
+rendering done initially. Note that these limits are implicitly
+*OR*-ed together, and combinations might have surprising effects.
+
+.. emacsvar:: notmuch-show-depth-limit
+
+ |docstring::notmuch-show-depth-limit|
+
+.. emacsvar:: notmuch-show-height-limit
+
+ |docstring::notmuch-show-height-limit|
+
+.. emacsvar:: notmuch-show-max-text-part-size
+
+ |docstring::notmuch-show-max-text-part-size|
+
+.. _show-copy:
+
+Copy to kill-ring
+-----------------
+
+You can use the usually Emacs ways of copying text to the kill-ring,
+but notmuch also provides some shortcuts. These keys are available in
+:ref:`notmuch-show`, and :ref:`notmuch-tree`. A subset are available
+in :ref:`notmuch-search`.
+
+``c F`` ``notmuch-show-stash-filename``
+ |docstring::notmuch-show-stash-filename|
+
+``c G`` ``notmuch-show-stash-git-send-email``
+ |docstring::notmuch-show-stash-git-send-email|
+
+``c I`` ``notmuch-show-stash-message-id-stripped``
+ |docstring::notmuch-show-stash-message-id-stripped|
+
+``c L`` ``notmuch-show-stash-mlarchive-link-and-go``
+ |docstring::notmuch-show-stash-mlarchive-link-and-go|
+
+``c T`` ``notmuch-show-stash-tags``
+ |docstring::notmuch-show-stash-tags|
+
+``c c`` ``notmuch-show-stash-cc``
+ |docstring::notmuch-show-stash-cc|
+
+``c d`` ``notmuch-show-stash-date``
+ |docstring::notmuch-show-stash-date|
+
+``c f`` ``notmuch-show-stash-from``
+ |docstring::notmuch-show-stash-from|
+
+``c i`` ``notmuch-show-stash-message-id``
+ |docstring::notmuch-show-stash-message-id|
+
+``c l`` ``notmuch-show-stash-mlarchive-link``
+ |docstring::notmuch-show-stash-mlarchive-link|
+
+``c s`` ``notmuch-show-stash-subject``
+ |docstring::notmuch-show-stash-subject|
+
+``c t`` ``notmuch-show-stash-to``
+ |docstring::notmuch-show-stash-to|
+
+``c ?``
+ Show all available copying commands
+