     Article-Reading Level

     On the article-reading level, trn displays unread articles in thread
     sequence (reading each article and its replies before going on to
     another topic) unless threads are disabled for a particular group, in
     which case the default order is the order they arrived at your site
     (numeric sequence).  In either case if you use the subject-search com-
     mand (^N) you will switch to reading the articles in date order within
     each matching subject.  (Making selections in the subject selector or
     using the -S switch will automatically turn subject search mode on in an
     unthreaded group.)

     On the article-reading level you are not asked whether you want to read
     an article before the article is displayed; rather, trn simply displays
     the first page (or portion of a page, at low baud rates) of an article
     and asks if you want to continue.  The normal article-reading prompt
     comes at the END of an article (although article-reading commands can
     also be given from within the middle of an article in addition to the
     pager level commands).  The prompt at the end of an article looks like
     this:

     End of article 248 (of 257) -- what next? [npq]

     The following are the options at this point:

     n,SP    Scan forward for next unread article.  (Note: the 'n' (next)
             command when typed at the end of an article does not mark the
             article as read, since an article is automatically marked as
             read after the last line of it is printed.  It is therefore pos-
             sible to type a sequence such as 'mn' and leave the article
             marked as unread.  The fact that an article is marked as read by
             typing n, N, ^N, e, s, S, |, w, or W within the MIDDLE of the
             article is in fact a special case.)

     N       Go to the next article.

     ^N      Find the next article with the same subject in date order.  This
             also makes subject search mode (^N) the default command at the
             end of an article.

     p       Scan backward for previous unread article.  If there is none,
             stay at the current article.

     P       Go to the previous article.

     -       Go to the previously displayed article (regardless of whether
             that article is before or after this article in the normal
             sequence).

     ^P      Find the previous article with the same subject in date order.
             Makes subject search mode (^N) the default.

     _N      Go to the next article in numeric sequence.

     _P      Go to the previous article in numeric sequence.

     <, >    Browse the previous/next selected thread/subject.  If no selec-
             tions have been made, all the threads that had unread news when
             you entered the newsgroup (or last left the selector) are
             treated as selected.  Entering an empty newsgroup makes all the
             already-read threads available for browsing.

     [, ]    Proceed to the left/right in the article tree.  Visits already-
             read articles as well as empty nodes.  Try using the left-
             /right-arrow keys also.

     {, }    Go to the root/leaf of the article tree, even if the node is
             already read or empty.  Proceeds to the very first/last node if
             you're already at a root/leaf in a multi-root thread.

     (, )    Go to the previous/next sibling in the thread, including
             "cousin" siblings.  Try using the up-/down-arrow keys also.

     t       Display the entire article tree and all its associated subjects.
             If the group is not currently threaded, it will become threaded
             to process this command.

     ^R      Restart the current article.

     v       Restart the current article verbosely, displaying the entire
             header.

     ^L      Refresh the screen.

     ^X      Restart the current article, and decrypt as a rot13 message.

     X       Refresh the screen, and decrypt as a rot13 message.

     b       Back up one page.

     q       Quit this newsgroup and go back to the newsgroup-selection
             level.

     ^       Go to the first unread article.

     $       Go to the last article (actually, one past the last article).

     number  Go to the numbered article.

     range{,range}:command{:command}
             Apply a set of commands to a set of articles.  A range consists
             of either <article number> or <article number>-<article number>.
             A dot '.' represents the current article, and a dollar sign '$'
             represents the last article.

             Applicable commands include 'm' (mark as unread), 'M' (mark as
             read-until-exit), 'j' (mark as read), "s dest" (save to a desti-
             nation), "e dir" (extract to directory), "!command" (shell
             escape), "=" (print the subject), '+'/'-' (select/deselect the
             article), 'T+' (auto-select the entire thread), 'Tj' (auto-junk
             the entire thread), "++"/"--" (select/deselect the associated
             thread), 'C' (cancel), as well as S, |, w, W, and t.

     :command
             Apply a command to all selected articles.  If nothing is
             selected, nothing is done.  For applicable commands, see the
             discussion above for the range command.

     j       Junk the current article (i.e. mark it as read).  If this com-
             mand is used from within an article, you are left at the end of
             the article, unlike 'n', which looks for the next article.

     m       Mark the current article as still unread.  (If you don't want to
             see this article for a while you're probably better off using M
             instead of m, otherwise this article might get picked again as
             the first available article sooner than you'd like.)

     M       Mark the current article to return on newsgroup exit.  Until
             then, the current article will be marked as read.  This is use-
             ful for returning to an article in another session.

     Y       Yank back the marked-to-return articles, clearing their to-
             return status.  If you are reading selected articles, the yanked
             articles come back selected.

     /pattern
             Scan forward for article containing pattern in the subject.  See
             the Regular Expressions section.  Together with the escape sub-
             stitution facility described later, it becomes easy to search
             for various attributes of the current article, such as subject,
             article ID, author name, etc.  The previous pattern can be
             recalled with ESC.  If pattern is omitted, the previous pattern
             is assumed.

     /pattern/f
             Scan forward for article containing pattern in the from line.
             If you are using thread files the article data you are matching
             against MAY contain only the real name of the user.  If you want
             to always match the full from line, see the following header-
             matching option that will read in the full from-line data if it
             is not already available.

     /pattern/Hheader
             Scan forward for article containing pattern in the indicated
     header
     Because we scan the entire string up to the end of the modifiers, this
     modifier must be the last one.  For example,
     "/jsmoe@somesite.com/rHfrom:m+" will mark all articles from
     "jsmoe@somesite.com" as unread and select them.  Note that if the header
     line isn't one that trn recognizes in its header parser, you'll have to
     use the following full-header matching.

     /pattern/h
             Scan forward for article containing pattern in the header.

     /pattern/a
             Scan forward for article containing pattern anywhere in the
             article.

     /pattern/r
             Scan read articles also.

     /pattern/c
             Make search case sensitive.  Ordinarily upper- and lower-case
             are considered the same.

     /pattern/modifiers:command{:command}
             Apply the commands listed to articles matching the search com-
             mand (possibly with h, a, or r modifiers).  Applicable commands
             include 'm' (mark as unread), 'M' (mark as read-until-exit), 'j'
             (mark as read), "s dest" (save to a destination), "e dir"
             (extract to directory), "!command" (shell escape), "=" (print
             the subject), '+' (select the article), '-' deselect the arti-
             cle, 'T+' (auto-select the entire thread), 'Tj' (auto-junk the
             entire thread), "++" (select the associated thread), "--"
             deselect the associated thread), and 'C' (cancel).  If the first
             command is 'm' or 'M', modifier r is assumed.  A K may be
             included in the modifiers (not the commands) to cause the entire
             command (sans K) to be saved to the local KILL file, where it
             will be applied to every article that shows up in the newsgroup.

             For example, to save all articles in a given newsgroup to the
             line printer and mark them read, use "/^/|lpr:j".  If you type
             "/^/K|lpr:j", this will happen every time you enter the news-
             group.

     ?pattern
             Scan backward for article containing pattern in the subject.
             May be modified as the forward search is:
             ?pattern?modifiers[:commands].  It is likely that you will want
             an r modifier when scanning backward.

     k       Mark as read all articles with the same subject as the current
             article.  (Note: there is no single character command to tem-
             porarily mark as read (M command) articles matching the current
             subject.  That can be done with "/<ESC>s/M", however.)

     ,       Mark the current article and all its replies as read.

     J       Junk all the articles in the current thread, even if it contains
             multiple subjects.

     A       Add a subject-search command to the memorized list for this
             group (in the KILL file).  You are prompted to choose selection
             (+), junking (j), selection including all replies (.) or junking
             including all replies (,).

     K       This is a synonym for the command "Aj" which adds a command to
             junk the current subject to the memorized commands for the
             group.  See also the K modifier on searches above.

     T       Add a thread-oriented command to the memorized list for this
             group.  You are prompted to choose selection of entire thread
             (+), junking of entire thread (j), selection of an article and
             its replies (.), junking of an article and its replies (,),
             clearing the auto-selection/junking for this thread (c), or
             clearing the auto-selection/junking for an article and its
             replies (C).

     ^K      Edit the local list of memorized commands (a.k.a. a KILL file)
             for this newsgroup.  Each line of the KILL file is either a
             subject-affecting command of the form /pattern/x or a thread-
             affecting command of the form <message-id> Tx.  The first line
             in the KILL file has the form "THRU <number>", which tells trn
             the maximum article number that the KILL file has been applied
             to.  The THRU value is usually only used to keep header or arti-
             cle searches from happening multiple times.  Subject and from-
             line searches are quite fast if the group has cached data around
             (e.g. a .thread or .overview file).  If it doesn't, the THRU
             line is used to set a lower boundary on the search to keep the
             startup time as short as possible.  If trn skipped some
             selections (or you're not sure), wait for the group to finish
             being cached (e.g. visiting the selector forces the caching of
             all unread articles), quit the group, and re-enter.

             To see only newgroup articles in the control newsgroup, for
             instance, you might include the line

             /newgroup/:+

             which selects all subjects containing "newgroup".  You can add
             lines automatically via the A and T commands as well as the K
             search modifier, but editing is the only way to remove subject
             commands (thread commands die automatically as the thread dies).
             If either of the environment variables VISUAL or EDITOR is set,
             the specified editor will be invoked; otherwise a default editor
             (normally vi) is invoked on the KILL file.

             The KILL file may also contain switch-setting lines beginning
             with '&' (see the section on "Options") and special commands
             beginning with '*'.  There are two such commands at the moment:
             "*j" (junk all articles from THRU to the end of the group) and
             "*X" (junk all unselected articles from THRU to the end of the
             group).  Additionally, any line beginning with 'X' is executed
             on exit from the newsgroup rather than on entrance.  This can be
             used to set switches back to a default value.  One use for this
             capability is to set your save directory to a custom value upon
             entry to a newsgroup and set it back on exit using the -ESAVEDIR
             option.  See also the -/ option for another solution to multiple
             save directories without using KILL files.

     r       Reply through net mail.  The environment variables MAILPOSTER
             and MAILHEADER may be used to modify the mailing behavior of trn
             (see the environment section).  If the current article does not
             exist (such as the "End of newsgroup" pseudo-article you can get
             to with a '$' command), invokes the mailer to nobody in particu-
             lar.

     R       Reply, including the current article in the header file gen-
             erated.  (See 'F' command below).  The YOUSAID environment vari-
             able controls the format of the attribution line.

     f       Submit a follow-up article.  If the current article does not
             exist (such as the "End of newsgroup" pseudo-article you can get
             to with a '$' command), posts an original (root) article.

     F       Submit a follow-up article, and include the old article, with
             lines prefixed either by ">" or by the argument to the -F
             switch.  Trn will attempt to provide an attribution line in
             front of the quoted article, generated from the From: line of
             the article.  Unfortunately, the From: line doesn't always con-
             tain the right name; you should double check it against the sig-
             nature and change it if necessary, or you may have to apologize
             for quoting the wrong person.  The environment variables
             NEWSPOSTER, NEWSHEADER and ATTRIBUTION may be used to modify the
             posting behavior of trn (see environment section).

     C       Cancel the current article, but only if you are the contributor
             or superuser.

     z       Supersede the current article, but only if you are the contribu-
             tor.

     Z       Same as the 'z' command, but you start with a copy of the origi-
             nal article to work with.

     c       Catch up in this newsgroup; i.e., mark all articles as read.

     U       Mark some or all articles as unread.  You can choose to mark the
             current thread, sub-thread (the current article and its
             replies), all the articles, or start up the selector to choose
             specific articles to set unread.

     u       Unsubscribe from this newsgroup.

     s destination
             Save to a filename or pipe using sh.  If the first character of
             the destination is a vertical bar, the rest of the command is
             considered a shell command to which the article is passed
             through standard input.  The command is subject to filename
             expansion.  (See also the environment variable PIPESAVER.) If
             the destination does not begin with a vertical bar, the rest of
             the command is assumed to be a filename of some sort.  An ini-
             tial tilde '~' will be translated to the name of the home direc-
             tory, and an initial environment variable substitution is also
             allowed.  If only a directory name is specified, the environment
             variable SAVENAME is used to generate the actual name.  If a
             non-absolute filename is specified, the environment variable
             SAVEDIR will be used to generate the actual directory.  If noth-
             ing is specified, then obviously both variables will be used.
             Since the current directory for trn while doing a save command
             is your private news directory, typing "s ./filename" will force
             the file to your news directory.  Save commands are also run
             through % interpretation, so that you can enter "s %O/filename"
             to save to the directory you were in when you ran trn, and "s
             %t" to save to a filename consisting of the Internet address of
             the sender.

             After generating the full pathname of the file to save to, trn
             determines if the file exists already, and if so, appends to it.
             trn will attempt to determine if an existing file is a mailbox
             or a normal file, and save the article in the same format.  If
             the output file does not yet exist, trn will by default ask you
             which format you want, or you can make it skip the question with
             either the -M or -N switch.  If the article is to be saved in
             mailbox format, the command to do so is generated from the
             environment variable MBOXSAVER.  Otherwise, NORMSAVER is used.

     S destination
             Save to a filename or pipe using a preferred shell, such as csh.
             Which shell is used depends first on what you have the environ-
             ment variable SHELL set to, and in the absence of that, on what
             your news administrator set for the preferred shell when he or
             she installed trn.

     | command
             Shorthand for "s | command".

     w destination
             The same as "s destination", but saves without the header.

     W destination
             The same as "S destination", but saves without the header.

     e directory
             Extract a shell archive or uuencoded binary to the designated
             directory.  The article is first scanned to try discover what
             type of data is encapsulated.  If a "cut here" line is found,
             the first non-blank line after it must be either the start of a
             shar header, or the "begin" or "table" line of a uuencoded
             binary.  The default for extracting shars is to send the data
             portion of the file to /bin/sh, but that can be overridden with
             the UNSHAR variable (see the ENVIRONMENT section).  Uudecoding
             is done internally by a decoder that can handle the data being
             split up over multiple articles, and extracted one piece at a
             time.  To decode a multi-article file, either execute the 'e'
             command in each article in sequence, use an article range to
             execute the command, or use the ":e" command to repeat the com-
             mand for each of the currently selected articles.  When the 'e'
             command is not followed by any arguments, it will repeat the
             arguments from the last extraction.  All directory specifica-
             tions are relative to the value of SAVEDIR, so you can use the
             command "e ." to force an extraction to SAVEDIR itself.  If a
             uudecoding is in progress (i.e. the last piece wasn't extracted
             yet) and you exit the group, the partial file will be removed.
             This also occurs if you start to extract a new uuencoded file
             before the previous one was finished.  See also the 'E' command
             for ending a multi-part uudecoding manually.

             There is one special case that is handled differently: if the
             first file in a recognizable shar file is a uuencoded binary
             that was packed with lines starting with an 'X', we will not
             unshar the file but instead uudecode it.  If this causes prob-
             lems, you can override the default extraction method by follow-
             ing the directory with an explicit command to execute, as
             described below.

     e directory|command
             This form of the 'e' command allows you to extract other data
             formats than shar or uuencoded files or to override the deci-
             sions made by the automatic extraction selection described
             above.  In normal operation, all data following what we recog-
             nize as a "cut here" line will be sent to the specified command.
             Additionally, the distinctive beginning of a shell archive is
             also recognized without a preceding cut line.  When the command
             is run, the default directory will be set to the specified
             directory, or the value of SAVEDIR if unspecified.  Entering the
             'e' command without arguments will repeat your previous extract
             command.  You can use the command "e dir|" to extract to a new
             directory using the previously-specified command.

     E       This command ends any multi-part uuencoded file extraction that
             you began, but are unable (or unwilling) to complete.  The par-
             tially extracted file is removed.

     &       Print out the current status of command-line switches.

     &switch {switch}
             Set additional command-line switches.

     &&      Print out current macro definitions.

     &&keys commands
             Define an additional macro.

     !command
             Escape to a subshell.  One exclamation mark (!) leaves you in
             your own news directory.  A double exclamation mark (!!) leaves
             you in the spool directory of the current newsgroup.  The
             environment variable SHELL will be used if defined.  If command
             is null, an interactive shell is started.

             You can use escape key substitutions described later to get to
             many run-time values.  The command is also run through %
             interpretation, in case it is being called from a range or
             search command.

     +       Start the selector in the last-used mode.  If the newsgroup is
             unthreaded and the default selector mode is threads, we tem-
             porarily switch to subject selection unless manually overridden.

     _a      Start the selector in article mode.

     _s      Start the selector in subject mode.

     _t      Start the selector in thread mode.

     _T      Start the selector in thread mode unless the group isn't
             threaded, in which case we settle for the subject selector.

     =       List subjects of unread articles.

     #       Print last article number.

     _+      Select the entire thread associated with the current article.

     _-      Deselect the entire thread associated with the current article.

