mh-e: Threading
16 Viewing Message Threads
**************************
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
DONTPRINTYET (Limits) or using full-text indexed searches (*noteDONTPRINTYET (Limits) or using full-text indexed searches (
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.
‘T ?’
Display cheat sheet for the commands of the current prefix in
minibuffer (‘mh-prefix-help’).
‘T o’
Refile (output) thread into folder (‘mh-thread-refile’).
‘T d’
Delete thread (‘mh-thread-delete’).
‘T t’
Toggle threaded view of folder (‘mh-toggle-threads’).
‘T n’
Display next sibling (‘mh-thread-next-sibling’).
‘T p’
Display previous sibling (‘mh-thread-previous-sibling’).
‘T u’
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.
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 so(1).
---------- Footnotes ----------
(1) 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.