MH-E groups messages by threads which are messages that are part of the same discussion and usually all have the same ‘Subject:’ header field. Other ways to organize messages in a folder include limiting (see Limits) or using full-text indexed searches (see Searching).
A thread begins with a single message called a root. All replies to the same message are siblings of each other. Any message that has replies to it is an ancestor of those replies.
There are several commands that you can use to navigate and operate on threads.
Display cheat sheet for the commands of the current prefix in
minibuffer (mh-prefix-help
).
Refile (output) thread into folder (mh-thread-refile
).
Delete thread (mh-thread-delete
).
Toggle threaded view of folder (mh-toggle-threads
).
Display next sibling (mh-thread-next-sibling
).
Display previous sibling (mh-thread-previous-sibling
).
Display ancestor of current message (mh-thread-ancestor
).
The ‘mh-thread’ customization group contains one option.
mh-show-threads-flag
On means new folders start in threaded mode (default: ‘off’).
Threading large number of messages can be time consuming so the option
mh-show-threads-flag
is turned off by default. If you turn on
this option, then threading will be done only if the number of
messages being threaded is less than mh-large-folder
. In any
event, threading can be turned on (and off) with the command T t
(mh-toggle-threads
).
There are a few commands to help you navigate threads. If you do not
care for the way a particular thread has turned, you can move up the
chain of messages with the command T u
(mh-thread-ancestor
. At any point you can use T n
(mh-thread-next-sibling
or T p
(mh-thread-previous-sibling
) to jump to the next or previous
sibling, skipping the sub-threads. The command T u can also take
a prefix argument to jump to the message that started everything.
There are threaded equivalents for the commands that delete and refile
messages. For example, T o (mh-thread-refile
) refiles the
current message and all its children. Similarly, the command T d
(mh-thread-delete
) deletes the current message and all its
children. These commands do not refile or delete sibling messages.
See Navigating, for a description of the similar command k
(mh-delete-subject-or-thread
).
If you find that threading is too slow, it may be that you have
mh-large-folder
set too high. Also, threading is one of the few
features of MH-E that really benefits from compiling. If you haven’t
compiled MH-E, I encourage you to do so48.
If you’re not sure if
MH-E has been byte-compiled, you could try running ‘locate
mh-thread.elc’ or otherwise find MH-E on your system and ensure that
mh-thread.elc exists. If you have multiple versions and you
find that one is compiled but the other is not, then go into your
*scratch* buffer in Emacs, enter load-path C-j, and
ensure that the byte-compiled version appears first in the
load-path
. If you find that MH-E is not compiled and you
installed MH-E yourself, please refer to the installation directions
in the file README in the distribution.