Scroll to navigation

SHOW(1mh) SHOW(1mh)


show - display nmh messages


show [-help] [-version] [+folder] [msgs] [-draft] [-showproc program] [-showmimeproc program] [-header | -noheader] [-checkmime | -nocheckmime] [-concat | -noconcat] [switches for showproc or showmimeproc]


show lists each of the specified messages to the standard output (typically, the terminal).

By default, text (non-MIME) messages are filtered and displayed by the nmh command mhl. This command will display text messages in a nice, uniform format. It also allows you to configure the format of the displayed messages and which headers fields are shown. See the mhl(1) manual page for the details about this command. This default can be changed by defining the showproc profile component. Any switches not recognized by show, as well as -header and -noheader, are passed along to that program. To override the default and the showproc profile component, use the -showproc program switch. For example, -showproc more will cause the more program to list the messages with no reformatting. Normally, this program is specified as the showproc in the user's .mh_profile, rather than using a command line switch.

By default, non-text messages (MIME messages with multi-media contents) are processed and displayed by the nmh command mhshow. See the mhshow(1) manual page for details about this command. This default can changed by defining the showmimeproc profile component. Any switches not recognized by show are passed along to that program. To override this default and the showmimeproc profile component, use the -showmimeproc program switch.

Note that in some cases, show may invoke the showmimeproc even for textual contents. This will happen for text messages that specify a transfer encoding (such as MIME quoted-printable or base64) or specify a character set that show doesn't believe can be displayed natively. The appropriate locale(1) environment variables should be set to the terminal's native character set to avoid gratuitous invocations of the showmimeproc. See the locale(1) man page for details about these environment variables.

The option -checkmime (set by default) instructs show to test if any of the messages to be displayed are non-text (MIME) messages. If any are non-text, they are displayed by the program showmimeproc, else they are displayed by the program showproc. The option -nocheckmime disables this test and instructs show to use showproc, regardless of whether any of the messages are non-text (MIME) messages.

The -noshowproc switch will disable any formatting or paging of messages. It is equivalent to -nocheckmime -showproc cat. It is still accepted, but should be considered (somewhat) obsolete.

The -header switch tells show to display a one-line description of the message being shown. This description includes the folder and the message number.

By default show will concatenate all content under one pager. If you want each part to displayed separately, you can override the default behavior with -noconcat.

If no `msgs' are specified, the current message is used. Although it depends on the specific showproc or showmimeproc, in the default setup when more than one message is specified, you will be prompted for a <RETURN> prior to listing each message. Each message will be listed a page at a time, and when the end of page is reached, the program will wait for a <SPACE> or <RETURN>. If a <RETURN> is entered, it will print the next line, whereas <SPACE> will print the next screenful.

If the standard output is not a terminal, no queries are made, and each file is listed with a one-line header and two lines of separation.

show -draft” will list the file <mh-dir>/draft if it exists.

If the profile entry “Unseen-Sequence” is present and non-empty, then show will remove each of the messages shown from each sequence named by the profile entry.


^$HOME/.mh_profile~^The user profile


^Path:~^To determine the user's nmh directory
^Current-Folder:~^To find the default current folder
^Unseen-Sequence:~^To name sequences denoting unseen messages
^showproc:~^Program to show text (non-MIME) messages
^showmimeproc:~^Program to show non-text (MIME) messages


mhl(1), mhshow(1), next(1), prev(1), scan(1)


`+folder' defaults to the current folder
`msgs' defaults to cur


If a folder is given, it will become the current folder. The last message selected will become the current message.


The -header switch doesn't work when `msgs' expands to more than one message. If the showproc is mhl, then this problem can be circumvented by referencing the “messagename” field in the mhl format file.

show updates the user's context before showing the message. Hence show will mark messages as seen prior to the user actually seeing them. This is generally not a problem, unless the user relies on the “unseen” messages mechanism, and interrupts show while it is showing “unseen” messages.

If your showproc is mhl (the default), then show uses a built-in mhl: it does not actually run the mhl program. Hence, if you define your own showproc, don't call it mhl since show won't run it.

If your showproc is the pager more, then avoid running show in the background with only its standard output piped to another process, as in

show | imprint &

Due to a bug in more, show will go into a “tty input” state. To avoid this problem, re-direct show's diagnostic output as well. For users of csh:

show |& imprint &

For users of sh:

show 2>&1 | imprint &
2016-03-24 nmh-1.7.1