SHOW(1)

πŸ’– SHOW(1) β€” the nmh message-displayer, bestie edition πŸ’–

okay so this is show, part of the nmh fam, and it is literally the command that puts your mail messages on the screen. manual name? SHOW(1), General Commands Manual, and yes she ate. let's get into it 🫢


✨ NAME ✨

show β€” display nmh messages πŸ’Œ


✨ SYNOPSIS ✨

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

✨ DESCRIPTION ✨

so show lists each of the specified messages to standard output (which is, like, usually your terminal bestie). πŸ’…

default text-message behavior: by default, text (non-MIME) messages get filtered and displayed by the nmh command mhl. this command will display text messages in a nice, uniform format. it also lets you configure the format of the displayed messages and which header 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. ✨

default non-text behavior: 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. 🌈

⚠️ heads up bestie: 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 locale(1) for details about these environment variables. 😭

the mime check: 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 no-frills mode: 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 thing: 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. πŸŽ€

the concat thing: 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. πŸ¦‹

which messages? 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. πŸ’–

when stdout isn't a terminal: 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. 🌸

the draft moment: β€œshow -draft” will list the file <mh-dir>/draft if it exists. πŸ“

the unseen sequence thing: 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. ✨


✨ FILES ✨

  • $HOME/.mh_profile β€” the user profile

✨ PROFILE COMPONENTS ✨

  • 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

✨ SEE ALSO ✨

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


✨ DEFAULTS ✨

  • +folder defaults to the current folder
  • msgs defaults to cur
  • -checkmime
  • -header
  • -concat

✨ CONTEXT ✨

if a folder is given, it will become the current folder. the last message selected will become the current message. 🫢


✨ BUGS ✨

  • 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 &

and that's the whole page, bestie!! πŸŽ€ this one's from nmh-1.8, dated 2016-03-24, and it lives in section 1 of the manual. go display some messages, you main character. periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from