|
|
| |
TRN(1) |
FreeBSD General Commands Manual |
TRN(1) |
trn - threaded read news program
trn [options] [newsgroups]
Trn is a threaded version of rn, which is a replacement for the
readnews(1) program. Being "threaded" means that the articles are
interconnected in reply order. Each discussion thread is a tree of articles
where all the reply (child) articles branch off from their respective
originating (parent) articles. A representation of this tree (or a portion of
it) is displayed in the article header as you are reading news. This gives you
a better feel for how all the articles are related, and even lets you see at a
glance when an article has replies -- a good thing to check before posting. In
addition, trn has a thread selector that allows you to quickly browse
through a list of subjects and choose the ones you find interesting. This
thread selector sorts articles according to various criteria and can be
switched into various display modes that allows you to pick all the subjects
separately (threads can have multiple subjects) or even pick individual
articles. Any items you don't select can be saved for reading later or marked
as read with a single keystroke.
If you are already familiar with trn you may just want to
read the WHAT'S NEW section. People upgrading from rn will
probably want to pay attention to the sections on The Selector,
The Tree Display, and the aforementioned WHAT'S NEW. If you're
impatient, just dive in and get started. All the regular commands will be
familiar to an rn or trn user, and the on-line help will give
you a quick run-down of what commands are available (just type 'h' from any
prompt). I'd also suggest using the command:
trn -x -X
to make sure some of the best features are turned on.
Starting Trn
If no newsgroups are specified, all the newsgroups which have
unread news will be presented to the user in the order in which they occur
in the .newsrc file. At the prompt for each group you can choose to
read it, skip it, move it, etc. If a list of newsgroups is provided on the
command line, trn will start up in "add" mode, using the
list as a set of patterns to add new newsgroups and restrict which
newsgroups are displayed (see also the discussion of the 'a' command on the
newsgroup-selection level).
Trn operates on four levels: the newsgroup-selection level,
the thread selector, the article-reading level, and the paging level. Each
level has its own set of commands, and its own help menu. At the paging
level (the bottom level) trn behaves much like the more(1)
program. At the article-reading level articles are presented to you in the
order of their replies, with the subjects being ordered by the date of the
oldest unread article (though there are commands for changing the default
display order). In the thread selector you are presented with the subjects
and (usually) authors associated with each discussion thread, and given a
chance to choose which ones you wish to read now, save for later, or
manipulate in some way. At the newsgroup-selection level (the top level),
you may specify which newsgroup you want next, or read them in the default
order, which is the order that the newsgroups occur in your .newsrc
file. (You will therefore want to rearrange your .newsrc file to put
the most interesting newsgroups first. This can be done with the 'm' command
on the Newsgroup Selection level. WARNING: invoking readnews/vnews (the old
user interface) in any way (including as a news checker in your login
sequence!) will cause your .newsrc to be disarranged again.)
On any level, at ANY prompt, help is available by typing an 'h'.
This gives you a summary of available commands and what they do. Remember
this command, you'll need it.
Typing space to any question means to do the normal thing. You
will know what that is because every prompt has a list of several plausible
commands enclosed in square brackets. The first command in the list is the
one which will be done if you type a space. (All input is done in cbreak
mode, so carriage returns should not be typed to terminate anything except
certain multi-character commands. Those commands will be obvious in the
discussion below because they take an argument.)
Upon startup, trn will do several things:
- 1.
- It will look for your .newsrc file, which is your list of
subscribed-to newsgroups. If trn doesn't find a .newsrc, it
will create one. If it does find one, it will back it up under the name
".oldnewsrc".
- 2.
- It will input your .newsrc file, listing out the first several
newsgroups with unread news.
- 3.
- It will perform certain consistency checks on your .newsrc. If your
.newsrc is out of date in any of several ways, trn will warn
you and patch it up for you, but you may have to wait a little longer for
it to start up.
- 4.
- Trn will next check to see if any new newsgroups have been created,
and give you the opportunity to add them to your .newsrc.
- 5.
- Trn goes into the top prompt level -- the newsgroup-selection
level.
Newsgroup Selection Level
In this section the words "next" and
"previous" refer to the ordering of the newsgroups in your
.newsrc file. On the newsgroup-selection level, the prompt looks like
this:
====== 17 unread articles in talk.blurfl -- read now? [ynq]
unless the group is set for unthreaded reading, in which case the
first six characters are "******". The following commands may be
given at this level:
- +
- Enter this newsgroup through the selector.
- y
- Begin reading this newsgroup now.
- SP
- Enter the newsgroup by executing the default command listed in []'s.
- .command
- Do this newsgroup now, but execute command before displaying
anything. The command will be interpreted as if typed on the article
selection level.
- =
- Start this newsgroup, but list subjects before displaying articles.
- U
- Enter this newsgroup through the unkill-articles prompt.
- t
- Toggle the newsgroup between threaded and unthreaded reading. The default
is threaded, and the current setting is stored in your .newsrc.
- n
- Go to the next newsgroup with unread news.
- N
- Go to the next newsgroup.
- p
- Go to the previous newsgroup with unread news. If there is none, stay at
the current newsgroup.
- P
- Go to the previous newsgroup.
- -
- Go to the previously displayed newsgroup (regardless of whether it is
before or after the current one in the list).
- 1
- Go to the first newsgroup.
- ^
- Go to the first newsgroup with unread news.
- $
- Go to the end of the newsgroups list.
- g newsgroup
- Go to newsgroup, which can be the group's name or a zero-relative
number of the groups in your .newsrc (see the 'L' command to list your
.newsrc). If it isn't currently subscribed to, you will be asked if you
want to subscribe.
- /pattern
- Scan forward for a newsgroup matching pattern. Patterns do globbing
like filenames, i.e., use * to match any sequence of characters, and [] to
specify a list of characters to match. Use . to match a single character.
Unlike normal filename globbing, newsgroup-searching is not anchored to
the front and back of the filename, i.e. "/ski" will find
rec.skiing. You may use ^ or $ to anchor the front or back of the search:
"/^test$" will find newsgroup test and nothing else If you want
to include newsgroups with 0 unread articles, append /r. If the newsgroup
is not found between the current newsgroup and the last newsgroup, the
search will wrap around to the beginning.
- ?pattern
- Same as /, but search backwards.
- u
- Unsubscribe from the current newsgroup.
- l string
- List newsgroups not subscribed to which contain the string specified.
- L
- Lists the current state of the .newsrc, along with status
information.
Status Meaning
<number> Count of unread articles in newsgroup.
READ No unread articles in newsgroup.
UNSUB Unsubscribed newsgroup.
BOGUS Bogus newsgroup.
JUNK Ignored line in .newsrc
(e.g. readnews "options" line).
(A bogus newsgroup is one that is not in the list of active
newsgroups in the active file, which on most systems is
/usr/lib/news/active unless you use NNTP.)
- m {name}
- Move the named newsgroup somewhere else in the .newsrc. If no name
is given, the current newsgroup is moved. There are a number of ways to
specify where you want the newsgroup -- type h for help when it asks where
you want to put it.
- c
- Catch up -- mark all unread articles in this newsgroup as read.
- A
- Abandon the changes made to the current newsgroup since trn was
started. Useful when you accidentally mark a group as read.
- o {pattern}
-
- O {pattern}
- Only display those newsgroups whose name matches pattern. Patterns
are the same as for the '/' command. Multiple patterns may be separated by
spaces, just as on the command line. The restriction will remain in effect
either until there are no articles left in the restricted set of
newsgroups, or another restriction command is given. Since pattern
is optional, 'o' by itself will remove the restriction. Using 'O' will
omit empty groups from the cycle.
- a pattern
- Add unsubscribed newsgroups matching pattern. If any matching
newsgroups are found, you will be asked for each one whether you would
like to add it. If you want to add all the newsgroups, you can type 'Y'
and they will be added the the end of the .newsrc file. If you
don't want to subscribe, all the remaining groups can be ignored by typing
'N'. After any new newsgroups have been added, the 'a' command also
restricts the current set of newsgroups just like the 'O' command does.
- &
- Print out the current status of command-line switches and any newsgroup
restrictions.
- &switch {switch}
- Set additional command-line switches.
- &&
- Print out the current macro definitions.
- &&keys commands
- Define additional macros.
- !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 for news, which is usually /usr/spool/news unless you're using
NNTP to read news. The environment variable SHELL will be used if defined.
If command is null, an interactive shell is started.
- v
- Print the current version number and information on where to send bug
reports.
- q
- Quit.
- x
- Quit, restoring .newsrc to its state at startup of trn. The .newsrc
you would have had if you had exited with 'q' will be called .newnewsrc,
in case you didn't really want to type 'x'.
- ^K
- Edit the global list of memorized commands (in the global KILL file) that
you wish to be performed in every newsgroup as it is started up (that is,
when it is selected at the newsgroup-selection level). This file contains
commands (one per line) such as /subject/:j or /author/f:+ to kill or
select articles based on the indicated search criteria. There is also a
local list of commands for each newsgroup that can contain kill/selection
commands tailored for each specific group. Because of the overhead
involved in searching for articles to kill, it is better if possible to
use a local list rather than the global one. Local memorized commands are
usually maintained by using the 'A' or 'T' commands from the article/pager
level or in the selector. There is also a K search modifier that appends
any search command you desire to add. It is also possible to manually edit
the file with the '^K' command from anywhere inside a newsgroup. If either
of the environment variables VISUAL or EDITOR is set, the specified editor
will be invoked; otherwise a default editor is invoked on the KILL file.
The Selector
Most people who don't have all day to read news will want to enter
a newsgroup by way of the selector. This is accomplished by using the '+'
command at the newsgroup-selection or article/pager levels. In fact, this
may be the default command for entering a newsgroup, depending on how your
version of trn was configured and your use of the -X
option.
The selector displays a list of articles by their subjects and
(usually) authors. The articles are grouped into threads by default (which
may list multiple subjects per selectable item if the subject has changed
during the discussion) and ordered by the date of their oldest unread
article. Thread or subject groups are also shown with a count of the number
of articles in each group. Each selectable item is preceded by a letter or
number that can be typed to toggle its selection. Items that are selected
are flagged with a '+' after their letter. Groups that have only some of
their articles selected are flagged with a '*'. You can change the
selector's mode (to pick each subject separately or pick individual
articles), order the list by a variety of sort criteria, and switch the
author display between its long, medium and short styles using the commands
detailed below.
The following commands are available in the selector:
- a-z,0-9,A-Z
- Select/deselect the indicated item by its letter or number. There are
quite a few letters omitted from the alpha characters to be typed as
commands -- see below. Also, the variable SELECTCHARS is available to
customize which characters you want to be used as selection letters,
overriding their command function.
- SP
- Perform the default command. This is usually > for most pages, and Z on
the last page (although D and X are also quite popular).
- CR
- Begin reading. If no articles are selected, the current item is selected
(unless you've marked it as killed).
- Z,TAB
- Begin reading. If no articles are selected, read all unread articles.
- '.'
- Toggle the current item's selection (the one under the cursor).
- *
- Same as '.' except that it affects all articles with the same subject
(useful in the article selector).
- #
- Make an overriding selection that reads the current item only, temporarily
ignoring all other selections.
- k, ','
- Mark the current item as killed.
- m, \
- Unmark the current item.
- -
- Set a range, as in a - k. Repeats the last marking action: selection,
deselection, killing, or unmarking.
- @
- Toggle all visible selections.
- M
- Mark the current item's article(s) to return on newsgroup exit and kill
the item.
- Y
- Yank back and select the marked-to-return articles, clearing their
to-return status.
- E
- Exclude all unselected items from the selection list (narrow the display).
Press it again to pick from all available items.
- n, ]
- Move down to the next item (try the down-arrow keypad key also).
- p, [
- Move up to the previous item (try the up-arrow keypad key also).
- <
- Go to previous page (try the left-arrow keypad key also).
- >
- Go to next page (try the right-arrow keypad key also).
- ^
- Go to the first page.
- $
- Go to the last page.
- S
- Set the items the selector displays: threads, subjects or articles. If the
group is unthreaded setting this to threads will thread the group.
- =
- Switch between the article selector and the subject/thread selector.
- O
- Pick the order for the items: date, subject, author, item count (for
thread/subject groups), and a subject-date grouping of individual
articles. Typing the selection in lower-case will sort the articles in the
default direction, while using upper-case will reverse the sort. There is
a separate default sort order for the subject/thread selector and the
article selector. See the -O option to set your favorite selector
mode and sort order as the default.
- R
- Reverse the current sort order.
- L
- Switch the selector's display between the long, medium and short display
styles. See the -x option to set your favorite style as the
default.
- U
- Switch between selecting unread/read articles.
- X
- Mark all unselected articles as read and start reading.
- D
- Mark unselected articles on the current page as read and begin reading if
articles are selected, otherwise go to the next page.
- J
- Mark all selected articles as read (useful after performing some action on
them with the ':' command).
- c
- Catch up -- marks ALL articles as read without affecting their
cross-posted counterparts.
- A
- Add a subject-search command to the memorized list (a.k.a. a KILL file)
for this group. You are prompted to choose selection (+), junking (j),
selection including all replies (.) or junking including all replies (,).
If the thread has more than one subject the first subject is the one
chosen for the memorized command.
- T
- Add a thread-oriented command to the memorized list for this group. You
are prompted to choose selecting the thread (+), junking the thread (j),
or clearing the auto-selection/junking for the thread (c). (Note: there
are three other options ('.', ',', and 'C') on the article-reading level
-- look there for an explanation of their use.)
- ^K
- Edit the local list of memorized commands (a.k.a. a KILL file) for this
newsgroup. A detailed description of memorized commands is found in the
Article Selection section.
- :command
- Apply a command to all the selected threads or their selected articles.
You can also use ":E" to end a binary extraction or
":p" to post a new article. Use "::command" to apply
it to all non-selected threads/articles.
Applicable commands include '+'/'-' (select/deselect an
article), "++"/"--" (select/deselect a thread),
"T+" (auto-select the entire thread), "TJ"
(auto-junk the entire thread), 't' (display article tree), "s
dest" (save article to a destination), "e dir" (extract
to directory), 'E' (end partial uudecode), as well as: S, ⎪, w,
W, m, M, j, = and ','.
- :.command
- Apply a command to the current thread or the selected articles in the
current thread. Use "::.command" to apply a command to the
unselected articles in the current thread.
- /pattern
- Scan all articles for a subject containing pattern and select it.
- /pattern/modifiers:command{:command}
- Apply the commands listed to articles matching the search command
(possibly with h, a, b, r, or K modifiers). The default action, if no
command is specified, is to select the article's item in the selector
(e.g. the entire thread ("++") in the thread selector). See the
section on Regular Expressions and the description of pattern searching in
the Article Selection section.
One example: to scan all the unread articles looking for
"topic" anywhere in the article and then select its group and
save the articles to the files topic.1, topic.2, etc. use
"/topic/a:++:s topic.%#".
- N
- Go to the next newsgroup with unread news.
- P
- Go to the previous newsgroup with unread news.
- &
- Display or set the current status of command-line switches.
- &&
- Display or set the current macro definitions.
- !command
- Escape to a subshell.
- q
- Quit this group.
- ESC,+
- Quit the selector to the article level. Note: ESC won't work if trn has
mapped your arrow keys with default macros and the first character that
your arrow keys send is an ESC.
- Q
- Quit the current newsgroup and return to the newsgroup-selection prompt
for this group.
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 command (^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 possible 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, F, R, 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 selections 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.
- ^E
- Display the last page of the article.
- 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.
- _C
- Switch to next available charset conversion.
- 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
destination), "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 the selected threads or their selected articles.
Use "::command" to apply it to all non-selected
threads/articles. For applicable commands, see the discussion above for
the range command.
- :.command
- Apply a command to the current thread or the selected articles in the
current thread. Use "::.command" to apply a command to the
unselected articles in the current thread.
- j
- Junk the current article (i.e. mark it as read). If this command 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 useful 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 substitution
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 an article containing pattern in the header.
- /pattern/a
- Scan forward for an article containing pattern anywhere in the
article.
- /pattern/b
- Scan forward for an article containing pattern in the body of the
article, but not the signature. (The signature must be properly delimited
to be ignored, however.)
- /pattern/B
- Scan forward for an article containing pattern anywhere in the body
of the article.
- /pattern/r
- Scan read articles also.
- /pattern/c
- Make search case sensitive. Ordinarily upper- and lower-case are
considered the same.
- /pattern/t
- Force the search to start at the top of the group (useful while reading
the group, since the default is to start at the current article).
- /pattern/I
- Force the search to ignore the THRU line when executed as a memorized
command. If the command portion is a selection command (i.e. it starts
with a '+' or a '.') this is the default behavior.
- /pattern/N
- Force the search to NOT ignore the THRU line when executed as a memorized
command (useful on selection commands -- see also -k).
- /pattern/modifiers:command{:command}
- Apply the commands listed to articles matching the search command
(possibly with h, a, b, or r modifiers). Applicable commands include 'm'
(mark as UNread), 'M' (mark as read-until-exit), 'j' (junk -- mark as read
in all groups), 'x' (mark as read in this group), "s dest" (save
to a dest), "e dir" (extract to dir), "!command"
(shell escape), "=" (print the subject), '+' (select the
article), '-' deselect the article, '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 newsgroup.
- ?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 temporarily 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 article 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 particular.
- R
- Reply, including the current article in the header file generated. (See
'F' command below). The YOUSAID environment variable controls the format
of the attribution line.
- ^F
- Forward the current article.
- 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 contain the right name; you
should double check it against the signature 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 contributor.
- Z
- Same as the 'z' command, but you start with a copy of the original article
to work with.
- c
- Catch up in this newsgroup; i.e., mark all articles as read.
- U
- Unkill articles. You can choose to unkill the current thread, sub-thread
(the current article and its replies), all the articles, or start up the
selector to choose specific articles to unkill.
- 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
initial tilde '~' will be translated to the name of the home directory,
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 nothing 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 environment 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 command 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 specifications 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 problems, you can override the
default extraction method by following 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 decisions made by the automatic
extraction selection described above. In normal operation, all data
following what we recognize 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 partially 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 temporarily 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.
Pager Level
At the pager level (within an article), the prompt looks like
this:
--MORE--(17%)
and a number of commands may be given:
- SP
- Display next page.
- x
- Display next page and decrypt as a rot13 message.
- d
- Display half a page more.
- CR
- Display one more line.
- q
- Go to the end of the current article (don't mark it either read or
unread). Leaves you at the "What next?" prompt.
- j
- Junk the current article. Mark it read and go to the end of the article.
- ^L
- Refresh the screen.
- X
- Refresh the screen and decrypt as a rot13 message.
- b
- Back up one page.
- ^E
- Display the last page of the article.
- _C
- Switch to next available charset conversion.
- t
- Display the entire article tree, including its associated subjects, and
continue reading. If the group is not currently threaded, it will be
threaded first.
- gpattern
- Goto (search forward for) pattern within current article. Note that
there is no space between the command and the pattern. If the pattern is
found, the page containing the pattern will be displayed. Where on the
page the line matching the pattern goes depends on the value of the
-g switch. By default the matched line goes at the top of the
screen.
- G
- Search for g pattern again.
- ^G
- This is a special version of the 'g' command that is for skipping articles
in a digest. It is equivalent to setting "-g4" and then
executing the command "g^Subject:".
- TAB
- This is another special version of the 'g' command that is for skipping
inclusions of older articles. It is equivalent to setting "-g4"
and then executing the command "g^[^c]", where c is the
first character of the last line on the screen. It searches for the first
line that doesn't begin with the same character as the last line on the
screen.
- !command
- Escape to a subshell.
The following commands skip the rest of the current article, then
behave just as if typed to the "What next?" prompt at the end of
the article. See the documentation at the article selection level for these
commands.
# $ & / = ? A c C f F k K T ^K J , m M r R ^R u U v Y ^
p P ^P - < > [ ] { } number
range{,range} command{:command}
The following commands also skip to the end of the article, but
have the additional effect of marking the current article as read:
n N ^N e s S ⎪ w W
Miscellaneous facts about commands
An 'n' typed at either the "Last newsgroup" prompt or a
"Last article" prompt will cycle back to the top of the newsgroup
or article list, whereas a 'q' will quit the level. (Note that 'n' does not
mean "no", but rather "next".) A space will of course do
whatever is shown as the default, which will vary depending on whether
trn thinks you have more articles or newsgroups to read.
The 'b' (backup page) command may be repeated until the beginning
of the article is reached. If trn is suspended (via a ^Z), then when
the job is resumed, a refresh (^L) will automatically be done (Berkeley-type
systems only). If you type a command such as '!' or 's' which takes you from
the middle of the article to the end, you can always get back into the
middle by typing '^L'.
In multi-character commands such as '!', 's', '/', etc, you can
interpolate various run-time values by typing escape and a character. To
find out what you can interpolate, type escape and 'h', or check out the
single character % substitutions for environment variables in the
Interpretation and Interpolation section, which are the same. Additionally,
typing a double escape will cause any % substitutions in the string already
typed in to be expanded.
The Tree Display
When reading a threaded newsgroup, trn displays a character
representation of the article tree in the upper right corner of the header.
For example, consider the following display:
(1)+-(1)--(2)--[2]
⎪-(1)+-<3>
⎪\-[1]
\-(1)+-[1]--[1]
\-[1]
This tree represents an initial article that has three direct
replies (the second column with three (1)'s). Each reply has further replies
branching off from them. In two cases the subject line was altered in the
reply, as indicated by the increasing numbers.
The third subject is not selected for reading, as indicated by the
<>'s. Note you can always forcefully visit an unselected article with
'N' and 'P' as well as the thread-navagation commands (which are typically
macro'ed to the arrow keys on your keypad).
When there is only one subject associated with a thread, all the
nodes are marked with the number 1. When the first subject change arrives,
it is marked with the number 2, and so on. If you were to look at this
thread in the thread selector, the three subjects associated with it would
be listed in the same order as the ascending digits. In those rare cases
where more than 9 subjects are associated with each thread, the nodes are
marked with the letters A-Z, and then by a-z.
The articles that have already been read are enclosed in ()'s,
Unread articles are displayed in []'s, and unread-but-unselected articles
are displayed in <>'s. The currently displayed article has its entire
node highlighted in the display. The previously displayed article has only
its number highlighted. If the group has not been completely threaded yet,
some articles will appear as (?) until trn can determine if the referenced
article truly exists or not. If you visit such an article and wait for trn
to finish threading the group, the screen will refresh as soon as the
presence or absence of the article is determined.
Options
Trn has a nice set of options to allow you to tailor the
interaction to your liking. (You might like to know that the author swears
by "-x6ms +e -mu -S -XX -N -B -p".) These options may be set on
the command line, via the TRNINIT environment variable, via a file pointed
to by the TRNINIT variable, or from within trn via the & command.
Options may generally be unset by typing "+switch". Options
include:
- -a
- causes trn to always thread the unread articles on entry to a group.
Without this option trn may enter a group in a partially-threaded state
and process the unthreaded articles in the background. The down side of
this is that the tree display may not be complete when it is first
displayed and you may start out at an odd position in the first thread's
article tree.
- -A
- tells trn to attempt to create some default macros that will map your
arrow keys to useful trn functions (this is the default). Use +A to
turn this behavior off.
- -b
- will force trn to read each thread in a breadth-first order, rather than
depth-first.
- -B
- will turn on a spinner that twirls when trn is doing background
article-processing. A gizmo for those interested in what's going on behind
the scenes.
- -c
- checks for news without reading news. If a list of newsgroups is given on
the command line, only those newsgroups will be checked; otherwise all
subscribed-to newsgroups are checked. Whenever the -c switch is
specified, a non-zero exit status from trn means that there is
unread news in one of the checked newsgroups. The -c switch does
not disable the printing of newsgroups with unread news; this is
controlled by the -s switch. (The -c switch is not
meaningful when given via the & command.)
- -C<number>
- tells trn how often to checkpoint the .newsrc, in articles
read. Actually, this number says when to start thinking about doing a
checkpoint if the situation is right. If a reasonable check-pointing
situation doesn't arise within 10 more articles, the .newsrc is
check-pointed willy-nilly.
- -d<directory name>
- sets your private news directory to something other than ~/News. The
directory name will be globbed (via csh) if necessary (and if possible).
The value of SAVEDIR (where articles are saved) is initially set to this
directory, but is often manipulated via the -/ option or by
manipulating SAVEDIR directly (perhaps via the memorized commands (the
KILL file) for a group. Any KILL files (see the K command in the Article
Selection section) also reside in this directory and its subdirectories,
by default. In addition, shell escapes leave you in this directory.
- -D<flags>
- enables debugging output. See common.h for flag values. Warning: normally
trn attempts to restore your .newsrc when an unexpected
signal or internal error occurs. This is disabled when any debugging flags
are set.
- -e
- causes each page within an article to be started at the top of the screen,
not just the first page. (It is similar to the -c switch of
more(1).) You never have to read scrolling text with this switch.
This is helpful especially at certain baud rates because you can start
reading the top of the next page without waiting for the whole page to be
printed. It works nicely in conjunction with the -m switch,
especially if you use half-intensity for your highlight mode. See also the
-L switch.
- -E<name>=<val>
- sets the environment variable <name> to the value specified. Within
trn, "&-ESAVENAME=%t" is similar to "setenv
SAVENAME '%t'" in csh, or "SAVENAME='%t'; export
SAVENAME" in sh. Any environment variables set with -E
will be inherited by subprocesses of trn.
- -f
- will make trn avoid various sleep calls and the prompt after the
processing of the memorized commands that are intended to allow you time
to read a message before the screen clears. This allows the advanced user
to cruise along a little faster at the expense of readability. The -t
(terse) option turns on -f by default, but you can override this by
specifying +f after the -t option.
- -F<string>
- sets the prefix string for the 'F' follow-up command to use in prefixing
each line of the quoted article. For example, "-F<tab>"
inserts a tab on the front of each line (which will cause long lines to
wrap around, unfortunately), "-F>>>>" inserts
">>>>" on every line, and "-F" by itself
causes nothing to be inserted, in case you want to reformat the text, for
instance. The initial default prefix is ">".
- -g<line>
- tells trn which line of the screen you want searched-for strings to
show up on when you search with the 'g' command within an article. The
lines are numbered starting with 1. The initial default is
"-g1", meaning the first line of the screen. Setting the line to
less than 1 or more than the number of lines on the screen will set it to
the last line of the screen.
- -G
- selects the "fuzzy" processing on the go command when you don't
type in a valid group name. With this option on trn will attempt to find
the group you probably meant to type, but it can be a little slow about
it, so it's not on by default.
- -h<string>
- hides (disables the printing of) all header lines beginning with
string. For instance, -hx- will disable the printing of all
"X-Foo:" headers. Case is not significant. The default for
unrecognized headers can be set with the -hunrecognized option.
Alternately you could use -h (no string) to disable all headers except the
Subject line and then use +h to select only those lines you want to
see. You may wish to use the baud-rate switch modifier below to hide more
lines at lower baud rates.
- -H<string>
- works just like -h except that instead of setting the hiding flag
for a header line, it sets the magic flag for that header line. Certain
header lines have magic behavior that can be controlled this way. At
present, the following actions are caused by the flag for the particular
line: the Date line prints the date in local time if the group is
threaded; the From line will only print the commented portion of the user
name; the Newsgroups line will only print when there are multiple
newsgroups; the Subject line will be underlined and (when threaded) the
keyword 'Subject:' is replaced by its subject number (e.g. [1]); and the
Expires line will always be suppressed if there is nothing on it. In fact,
all of these actions are the default, and you must use +H to undo
them.
- -i=<number>
- specifies how long (in lines) to consider the initial page of an article
-- normally this is determined automatically depending on baud rate. (Note
that an entire article header will always be printed regardless of the
specified initial page length. If you are working at low baud rate and
wish to reduce the size of the headers, you may hide certain header lines
with the -h switch.)
- -I
- tells trn to append all new, unsubscribed groups to the end of the
.newsrc.
- -j
- forces trn to leave control characters unmolested in messages.
- -J{<number>}
- causes trn to join similar subjects into a common thread if they are the
same up to the indicated number of characters (the default is 30). You can
turn this on and off for specific groups by putting the following lines
into your kill file for the group(s):
&-J30
X&+J
- -k
- tells trn to ignore the THRU line when processing selection searches (i.e.
searches with a command portion that starts with a '+' or a '.') in the
memorized commands (aka kill files). This is turned on by default, so use
+k if you want to turn it off.
- -K
- is used to keep a trn from checking for new news while you're in the
group. Use this when your kill-file processing is so slow that you don't
want the group to expand while you're reading. If you only want specific
groups to be affected, put these lines into your kill file for the
group(s):
&-K
X&+K
- -l
- disables the clearing of the screen at the beginning of each article, in
case you have a bizarre terminal.
- -L
- tells trn to leave information on the screen as long as possible by
not blanking the screen between pages, and by using clear to end-of-line.
(The more(1) program does this.) This feature works only if you
have the requisite termcap capabilities. The switch has no effect unless
the -e switch is set.
- -m=<mode>
- enables the marking of the last line of the previous page printed, to help
the user see where to continue reading. This is most helpful when less
than a full page is going to be displayed. It may also be used in
conjunction with the -e switch, in which case the page is erased,
and the first line (which is the last line of the previous page) is
highlighted. If -m=s is specified, the standout mode will be used,
but if -m=u is specified, underlining will be used. If neither
=s or =u is specified, standout is the default. Use
+m to disable highlighting.
- -M
- forces mailbox format in creating new save files. Ordinarily you are asked
which format you want.
- -N
- forces normal (non-mailbox) format in creating new save files. Ordinarily
you are asked which format you want.
- -o
- will act like old versions of trn and not junk cross-referenced articles
when using thread commands to junk articles in the current group (such as
the selector's 'X' command).
- -O<mode>{<order>}
- specifies the selector's mode and (optionally) the sort order. The modes
are 'a'rticle, 's'ubject, or 't'hread. The orders are 'd'ate, 's'ubject,
'a'uthor, article 'c'ount per group, 'n'umeric, or subject-date 'g'roups.
The order can be capitalized to reverse the indicated order. For example,
to choose the article selector in subject order specify
"-Oas".
- -p{opt}
- tells trn to auto-select your postings and their replies as it encounters
them in the various groups you read. The optional parameter is either a
'.', 'p', or '+' (it defaults to '.' if omitted) and affects what command
trn should execute when it encounters your postings. The default is to
execute the command "T." on each of your postings which tells
trn to memorize the auto-selection of this article and all its replies.
Using -pp tells trn to use the same command, but start the selection with
the parent article, so that you see any other replies to the same article.
Using -p+ tells trn to select the whole thread that contains your
reply.
- -q
- bypasses the automatic check for new newsgroups when starting
trn.
- -Q<set>
- defines the set of available charset conversions. This can be useful to
restrict the available conversions to those your terminal can handle
and/or to specify an alternate default. The first element of this set is
taken as default for each article.
- -r
- causes trn to restart in the last newsgroup read during a previous
session with trn. It is equivalent to starting up normally and then
getting to the newsgroup with a g command.
- -s
- with no argument suppresses the initial listing of newsgroups with unread
news, whether -c is specified or not. Thus -c and -s
can be used together to test "silently" the status of news from
within your .login file. If -s is followed by a number, the
initial listing is suppressed after that many lines have been listed.
Presuming that you have your .newsrc sorted into order of interest,
-s5 will tell you the 5 most interesting newsgroups that have
unread news. This is also a nice feature to use in your .login
file, since it not only tells you whether there is unread news, but also
how important the unread news is, without having to wade through the
entire list of unread newsgroups. If no -s switch is given
-s5 is assumed, so just putting "rn -c" into your .login
file is fine.
- -S<number>
- causes trn to enter subject search mode (^N) automatically whenever
an unthreaded newsgroup is started up with <number> unread articles
or more. Additionally, it causes any 'n' typed while in subject search
mode to be interpreted as '^N' instead. (To get back out of subject search
mode, the best command is probably '^'.) If <number> is omitted, 3
is assumed.
- -t
- puts trn into terse mode. This is more cryptic but useful for low
baud rates. (Note that your system administrator may have compiled
trn with either verbose or terse messages only to save memory.) You
may wish to use the baud-rate switch modifier below to enable terse mode
only at lower baud rates.
- -T
- allows you to type ahead of trn. Ordinarily trn will eat typeahead to
prevent your autorepeating space bar from doing a very frustrating thing
when you accidentally hold it down. If you don't have a repeating space
bar, or you are working at low baud rate, you can set this switch to
prevent this behavior. You may wish to use the baud-rate switch modifier
below to disable typeahead only at lower baud rates.
- -u
- sets the unbroken-subject-line mode in the selector, which simply
truncates subjects that are too long instead of dumping the middle portion
prior to the last two words of the subject.
- -U
- tells trn to not write the .newsrc file out after visiting each group.
While this is "unsafe" it can be faster if you have a really
huge .newsrc.
- -v
- sets verification mode for commands. When set, the command being executed
is displayed to give some feedback that the key has actually been typed.
Useful when the system is heavily loaded and you give a command that takes
a while to start up.
- -V
- will output trn's version number and quit.
- -x{<number>}{<list>}
- Enable the extended (threaded) features of trn beyond the rn
compatibility mode (this may be the default on your system, use +x if you
yearn for the good ol' days). The <number> is the maximum number of
article-tree lines (from 0 to 11) you want displayed in your header. Use
the <list> to choose which thread selector styles you like ('s'hort,
'm'edium, or 'l'ong), and in what order they are selected with the 'L'
command. For example, use -xms to start with the medium display
mode and only switch between it and the short mode. You can omit either or
both of the parameters, in which case a default of -x6lms is
assumed.
- -X{<number>}{<commands>}
- If you like using the selector, you'll probably want to use this option to
make the selector command (+) the default when a newsgroup is started up
with at least <number> unread articles. (Your installer may have
chosen to make -X0 the default on your system.) It is also used to select
which commands you want to be the defaults while using the thread
selector. For example, -X2XD will make the thread selector the
default command for entering a newsgroup with at least 2 unread articles,
and set the default command for the LAST page of the thread selector to be
the X command and the default command for all other pages to be the
D command. Either or both parameters can be omitted, as well as the
second default command (e.g. -XX would change the default newsgroup
entry to use the selector and the default command for the last page of the
selector to be 'X'). The default is -X0Z> if just -X is
specified. To set the default selector commands without having '+' be the
default entry into a newsgroup, specify a high number, like 9999.
- -z
- sets the minimum number of minutes that must elapse before the active file
is refetched to look for new articles. A value of 0 or using +z turns this
off.
- -/
- sets SAVEDIR to "%p/%c" and SAVENAME to "%a", which
means that by default articles are saved in a subdirectory of your private
news directory corresponding to the name of the the current newsgroup,
with the filename being the article number. +/ sets SAVEDIR to
"%p" and SAVENAME to "%^C", which by default saves
articles directly to your private news directory, with the filename being
the name of the current newsgroup, first letter capitalized. (Either
+/ or -/ may be default on your system, depending on the
feelings of your news administrator when he, she or it installed
trn.) You may, of course, explicitly set SAVEDIR and SAVENAME to
other values -- see discussion in the environment section.
Any switch may be selectively applied according to the current
baud-rate. Simply prefix the switch with +speed to apply the switch at that
speed or greater, and -speed to apply the switch at that speed or less.
Examples: -1200-hposted suppresses the Posted line at 1200 baud or less;
+9600-m enables marking at 9600 baud or more. You can apply the modifier
recursively to itself also: +300-1200-t sets terse mode from 300 to 1200
baud.
Similarly, switches may be selected based on terminal type:
-=vt100+T set +T on vt100
-=tvi920-ETERM=mytvi get a special termcap entry
-=tvi920-ERNMACRO=%./.rnmac.tvi
set up special key-mappings
+=paper-v set verify mode if not hardcopy
Some switch arguments, such as environment variable values, may
require spaces in them. Such spaces should be quoted via ", ', or \ in
the conventional fashion, even when passed via TRNINIT or the & command.
Regular Expressions
The patterns used in article searching are regular expressions
such as those used by ed(1). In addition, \w matches an alphanumeric
character and \W a non-alphanumeric. Word boundaries may be matched by \b,
and non-boundaries by \B. The bracketing construct \( ... \)
may also be used, and \digit matches the digit'th substring, where digit can
range from 1 to 9. \0 matches whatever the last bracket match matched. Up to
10 alternatives may given in a pattern, separated by \⎪, with the
caveat that \( ... \⎪ ... \) is illegal.
Character Set Conversions
trn can use character set conversions when displaying
articles. This helps users in non-English-speaking countries to display
special characters on 7-bit displays. trn assumes that articles use
the ISO-8859-1 character set and converts the special characters (e.g.,
"umlauts") to a string of ASCII characters. Currently the
following conversions are supported (see the -Q option):
- p
- Plain. No change. This is the default.
- a
- ISO->ASCII. Special characters are mapped to ASCII, e.g. the umlaut-o
character becomes oe.
- m
- ISO->ASCII monospaced. Special characters are mapped to exactly one
similar-looking ASCII character, e.g. umlaut-o becomes o. Used where
correct spacing is more important than accuracy.
- t
- TeX->ISO. Assuming your display can handle the ISO-8859-1 charset,
trn transforms umlauts in the TeX notation, which is commonly used
in Germany, to real ISO characters, e.g. "a becomes umlaut-a.
The selected conversion, if different from p, will be
displayed in the article level and pager prompt. The conversion is also used
when including original articles in a reply or followup. It is not used when
saving articles to files.
Interpretation and Interpolation
Many of the strings that trn handles are subject to
interpretations of several types. Under filename expansion, an initial
"~/" is translated to the name of your home directory, and
"~name" is translated to the login directory for the user
specified. Filename expansion will also expand an initial environment
variable, and also does the backslash, caret and percent expansion mentioned
below.
All interpreted strings go through backslash, caret and percent
interpretation. The backslash escapes are the normal ones (such as \n, \t,
\033, etc.). The caret escapes indicate control codes (such as ^i, ^l,
etc.). If you wish to pass through a backslash or a caret it must be escaped
with a backslash. The special percent escapes are similar to printf percent
escapes. These cause the substitution of various run-time values into the
string. The following are currently recognized:
- %a
- Current article number.
- %A
- Full name of current article (%P/%c/%a).
- %b
- Destination of last save command, often a mailbox.
- %B
- The byte offset to the beginning of the part of the article to be saved,
set by the save command. The 's' and 'S' commands set it to 0, and the 'w'
and 'W' commands set it to the byte offset of the body of the article.
- %c
- Current newsgroup, directory form.
- %C
- Current newsgroup, dot form.
- %d
- Full name of newsgroup directory (%P/%c).
- %D
- "Distribution:" line from the current article.
- %e
- The last command executed to extract data from an article.
- %E
- The last directory where an extracted file went.
- %f
- "From:" line from the current article, or the
"Reply-To:" line if there is one. This differs from %t in that
comments (such as the full name) are not stripped out with %f.
- %F
- "Newsgroups:" line for a new article, constructed from
"Newsgroups:" and "Followup-To:" lines of current
article.
- %g
- The general mode of trn, for use in conditional macros.
I Init mode.
s Selector mode.
r Rn mode.
i Input mode (newline terminated).
p Prompt mode (single-character input).
c Choice mode (multi-choice input).
- %h
- Name of the header file to pass to the mail or news poster, containing all
the information that the poster program needs in the form of a message
header. It may also contain a copy of the current article. The format of
the header file is controlled by the MAILHEADER and NEWSHEADER environment
variables.
- %H
- Host name (your machine's name).
- %i
- "Message-I.D.:" line from the current article, with <>
guaranteed.
- %I
- The reference indication mark for citing prior articles (see the -F
switch.)
- %l
- The news administrator's login name, if any.
- %L
- Login name (yours).
- %m
- The current mode of trn, for use in conditional macros.
i Initializing.
n Newsgroup-list level.
f End (finis) of newsgroup-list level.
t The thread/subject/article selector.
c Newsrc selector.
w Newsgroup selector.
j Addgroup selector.
l Option selector.
a Article level ("What next?").
e End of the article level.
p Pager level ("MORE" prompt).
u Unkill prompt.
d Selector mode prompt.
o Selector order prompt.
m Memorize thread command prompt.
r Memorize subject command prompt.
z Option edit prompt.
k Processing memorized (KILL-file) commands.
A Add this newsgroup?
B Abandon confirmation.
C Catchup confirmation.
D Delete bogus newsgroups?
F Is follow-up a new topic?
M Use mailbox format?
R Resubscribe to this newsgroup?
K Press any key prompt.
Note that yes/no questions are all upper-case modes. If, for
example, you wanted to disallow defaults on all yes/no questions, you
could define the following macro:
\040 %(%m=[A-Z]?h: )
- %M
- The number of articles marked to return via the 'M' command. If the same
article is Marked multiple times, "%M" counts it multiple times
in the current implementation.
- %n
- "Newsgroups:" line from the current article.
- %N
- Full name (yours).
- %o
- Organization (yours).
- %O
- Original working directory (where you ran trn from).
- %p
- Your private news directory, normally ~/News.
- %P
- Public news spool directory, normally /usr/spool/news on systems that
don't use NNTP.
- %q
- The value of the last "quoted" input string (see the %"
interp).
- %r
- Last reference on references line of current article (parent article id).
- %R
- References list for a new article, constructed from the references and
article ID of the current article.
- %s
- Subject, with all Re's and (nf)'s stripped off.
- %S
- Subject, with one "Re:" stripped off.
- %t
- "To:" line derived from the "From:" and
"Reply-To:" lines of the current article. This always returns an
Internet format address.
- %T
- "To:" line derived from the "Path:" line of the
current article to produce a uucp path.
- %u
- The number of unread articles in the current newsgroup.
- %U
- The number of unread articles in the current newsgroup, not counting the
the current article. When threads are selected, this count reflects only
selected articles.
- %v
- The number of unselected articles, not counting the current article if it
is unselected.
- %w
- The directory where mthreads keeps its tmp files.
- %W
- The directory where thread files are placed.
- %x
- The news library directory.
- %X
- The trn library directory.
- %z
- The length of the current article in bytes.
- %Z
- The number of selected threads.
- %~
- Your home directory.
- %.
- The directory containing your dot files, which is your home directory
unless the environment variable DOTDIR is defined when trn is invoked.
- %#
- The current count for a multi-file save, starting with 1. This value is
incremented by one for each file saved or extracted within a single
command.
- %$
- Current process number.
- %/
- Last search string.
- %?
- A space unless the current interp string is > 79 characters, at which
point it turns into a newline.
- %%
- A percent sign.
- %{name} or %{name-default}
- The environment variable "name".
- %[name]
- The value of header line "Name:" from the current article. The
"Name: " is not included. For example "%D" and
"%[distribution]" are equivalent. The name must be spelled out
in full.
- %`command`
- Inserts the output of the command, with any embedded newlines translated
to space.
- %""prompt""
- Prints prompt on the terminal, then inputs one string, and inserts it.
- %(test_text=pattern?then_text:else_text)
- If test_text matches pattern, has the value
then_text, otherwise else_text. The ":else_text"
is optional, and if absent, interpolates the null string. The = may be
replaced with != to negate the test. To quote any of the meta-characters
('=', '?', ':', or ')'), precede with a backslash.
- %digit
- The digits 1 through 9 interpolate the string matched by the nth bracket
in the last pattern match that had brackets. If the last pattern had
alternatives, you may not know the number of the bracket you want -- %0
will give you the last bracket matched.
Modifiers: to capitalize the first letter, insert '^':
"%^C" produces something like "Rec.humor". Inserting '_'
causes the first letter following the last '/' to be capitalized:
"%_c" produces "rec/Humor".
Inserting '\' will insert a backslash before any characters that
would be magic in a regular expression, including '%': "%\C"
produces "rec\.humor".
Inserting "'" will insert a backslash before any
single-quotes in the result, suitable for enclosing in single-quotes and
sending to a shell: "'%'s'" might produce "'I'\''m a
subject'".
Inserting "''" will insert a backslash before any
double-quotes in the result, suitable for enclosing in double-quotes and
sending to a shell.
Inserting ">" will strip out just the address portion
of an address string such as the From line.
Inserting ")" will strip out just the comment (real
name) portion of an address string such as the From line.
Inserting ":FMT" will format the result according to the
printf-style FMT string: "%:-50.50s" left-justifies the subject
into a 50 character field.
The following environment variables are paid attention to by trn. In
general the default values assumed for these variables by trn are
reasonable, so if you are using trn for the first time, you can safely
ignore this section. Note that the defaults below may not correspond precisely
to the defaults on your system. To find the actual defaults you would need to
look in config.h and common.h in the trn source directory, and the file INIT
in the trn library directory.
Those variables marked (%) are subject to % interpolation, and
those marked (~) are subject to both % interpolation and ~ interpretation.
- ATTRIBUTION (%)
- Gives the format of the attribution line in front of the quoted article
included by an F command.
Default: In article %i,%?%)f <%>f> wrote:
- AUTOSUBSCRIBE
- When trn is checking for new newsgroups and finds one matching one
of the patterns in AUTOSUBSCRIBE, the new group is automatically added to
the end of the .newsrc, subscribed. Newsgroups not matching this or
AUTOUNSUBSCRIBE, below, are offered to the user.
AUTOSUBSCRIBE is a comma separated list of newsgroup patterns
ala 'o', '/', etc. It can also include "but not" entries
preceded by '!'. "a,b,!c,d" is read as "matching a or b,
unless it also matches c; matching d regardless". Another way to
look at it is "(((a or b) and not c) or d)". To automatically
subscribe to all local groups but be choosy about non-local groups, one
might say "*,!*.*".
Default: (none)
- AUTOUNSUBSCRIBE
- AUTOUNSUBSCRIBE is very similar to AUTOSUBSCRIBE, above, but new
newsgroups matching it are automatically added to the end of the .newsrc
file, unsubscribed. If a newsgroup matches AUTOSUBSCRIBE, AUTOUNSUBSCRIBE
is not consulted.
Default: (none)
- CANCEL (~)
- The shell command used to cancel an article.
Default: inews -h < %h
- CANCELHEADER (%)
- The format of the file to pass to the CANCEL command in order to cancel an
article.
Default:
Newsgroups: %n
Subject: cmsg cancel %i
References: %R
Reply-To: %L@%H (%N)
Distribution: %D
Organization: %o
%i cancelled from trn.
- DOTDIR
- Where to find your dot files, if they aren't in your home directory. Can
be interpolated using "%.".
Default: $HOME
- EDITOR (~)
- The name of your editor, if VISUAL is undefined.
Default: whatever your news administrator compiled in, usually
vi.
- EXSAVER (%)
- The shell command to execute in order to extract data to either /bin/sh or
a user-specified command.
Default: tail +%Bc %A ⎪ %e
- FIRSTLINE (%)
- Controls the format of the line displayed at the top of an article.
Warning: this may go away.
The default (ignoring the Marked to return display in
unthreaded groups) is approximately:
%C #%a%(%Z=^0$?%(%U!=^0$? (%U more\)): (%U + %v more\))
- FORWARDHEADER (%)
- The format of the header file for forwarding messages. See also
FORWARDPOSTER.
Default:
To:
Subject: %(%i=^$?:[subject] (fwd\\)
%(%{REPLYTO}=^$?:Reply-To: %{REPLYTO}
)Newsgroups: %n
In-Reply-To: %i)
%(%[references]=^$?:References: %[references]
)Organization: %o
Cc:
Bcc: \n\n
- FORWARDPOSTER (~)
- The shell command to be used by the forward command (^F) in order to allow
you to edit and deliver the file. trn will not itself call upon an
editor for replies -- this is a function of the program referenced by
FORWARDPOSTER. See also FORWARDHEADER and MAILPOSTER.
Default: Rnmail -h %h
- FROM (%)
- What to put in the From: header of your posts, email replies, and email
forwards, instead of whatever the default name and address are for your
system. This will only work if you use the default settings for the
NEWSHEADER, MAILHEADER, and FORWARDHEADER variables, or if your custom
ones use FROM to set the From: header.
Regardless of the settings of NEWSHEADER, MAILHEADER, and
FORWARDHEADER, the setting of FROM is used to determine which articles
may be cancelled or superseded.
Default: undefined
- HIDELINE
- If defined, contains a regular expression which matches article lines to
be hidden, in order, for instance, to suppress quoted material. A
recommended string for this purpose is "^>...", which
doesn't hide lines with only '>', to give some indication that
quoted material is being skipped. If you want to hide more than one
pattern, you can use "⎪" to separate the alternatives.
You can view the hidden lines by restarting the article with the 'v'
command.
There is some overhead involved in matching each line of the
article against a regular expression. You might wish to use a baud-rate
modifier to enable this feature only at low baud rates.
Default: undefined
- HOME
- Your home directory. Affects ~ interpretation, and the location of your
dot files if DOTDIR is not defined.
Default: $LOGDIR
- KILLGLOBAL (~)
- Where to find the KILL file to apply to every newsgroup. See the '^K'
command at the newsgroup-selection level.
Default: %p/KILL
- KILLLOCAL (~)
- Where to find the KILL file for the current newsgroup. See the commands
'K' and '^K' at the article selection level, and the search modifier 'K'.
Default: %p/%c/KILL
- LOGDIR
- Your home directory if HOME is undefined. Affects ~ interpretation, and
the location of your dot files if DOTDIR is not defined.
Default: none.
Explanation: you must have either $HOME or $LOGDIR.
- LOGNAME
- Your login name, if USER is undefined. May be interpolated using
"%L".
Default: value of getlogin().
- LOCALTIMEFMT
- The format used by strftime() to print the local time. The Date line is
only displayed in local time if the group is threaded (see the -H option
for more information on Date).
Default: %a %b %e %X %Z %Y
which is the same format as the date(1) command.
- MAILCALL (~)
- What to say when there is new mail.
Default: (Mail)
- MAILFILE (~)
- Where to check for mail.
Default: /usr/spool/mail/%L
- MAILHEADER (%)
- The format of the header file for replies. See also MAILPOSTER.
Default:
To: %t
Subject: %(%i=^$?:Re: %S
%(%{REPLYTO}=^$?:Reply-To: %{REPLYTO}
)Newsgroups: %n
In-Reply-To: %i)
%(%[references]=^$?:References: %[references]
)Organization: %o
Cc:
Bcc: \n\n
- MAILPOSTER (~)
- The shell command to be used by the reply commands (r and R) in order to
allow you to enter and deliver the response. trn will not itself
call upon an editor for replies -- this is a function of the program
referenced by MAILPOSTER. See also MAILHEADER.
Default: Rnmail -h %h
- MBOXSAVER (~)
- The shell command to save an article in mailbox format.
Default: %X/mbox.saver %A %P %c %a %B %C "%b" \
"From %t %`date`"
Explanation: the first seven arguments are the same as for
NORMSAVER. The eighth argument to the shell script is the new From line
for the article, including the posting date, derived either directly
from the Posted: line, or not-so-directly from the Date: line. Header
munging at its finest.
- MODSTRING
- The string to insert in the group summary line, which heads each article,
for a moderated group. See also NOPOSTRING.
Default: " (moderated)"
- NAME
- Your full name. May be interpolated using "%N".
Default: name from /etc/passwd, or ~/.fullname.
- NEWSHEADER (%)
- The format of the header file for follow-ups. See also NEWSPOSTER.
Default:
%(%[followup-to]=^$?:%(%[followup-to]=^%n$?:X-ORIGINAL-NEWSGROUPS:
%n
))Newsgroups: %(%F=^$?%C:%F)
Subject: %(%S=^$?%"\n\nSubject: ":Re: %S)
Summary:
Expires:
%(%R=^$?:References: %R
)Sender:
Followup-To:
%(%{REPLYTO}=^$?:Reply-To: %{REPLYTO}
)Distribution: %(%i=^$?%"Distribution: ":%D)
Organization: %o
Keywords: %[keywords]
Cc: \n\n
- NEWSORG
- Either the name of your organization, or the name of a file containing the
name of your organization. (For use at sites where the ORGANIZATION
environmental variable is already in use. NEWSORG will override
ORGANIZATION if both are present.) May be interpolated using
"%o".
Default: whatever your news administrator compiled in.
- NEWSPOSTER (~)
- The shell command to be used by the follow-up commands (f and F) in order
to allow you to enter and post a follow-up news article. If not set,
trn handles the whole process and calls inews directly. See also
NEWSHEADER.
- NNTPSERVER
- The hostname of your NNTPSERVER. [This does not apply unless you are
running the NNTP version of trn.]
Default: the hostname listed in the server file, usually
/usr/local/lib/rn/server.
- NOPOSTRING
- The string to insert in the group summary line, which heads each article,
for a group to which local posting is not allowed. See also MODSTRING.
Default: " (no posting)"
- NORMSAVER (~)
- The shell command to save an article in the normal (non-mailbox) format.
Default: %X/norm.saver %A %P %c %a %B %C "%b"
- ORGANIZATION
- Either the name of your organization, or the name of a file containing the
name of your organization. (If NEWSORG is set, it will override
ORGANIZATION.) May be interpolated using "%o".
Default: whatever your news administrator compiled in.
- PAGESTOP
- If defined, contains a regular expression which matches article lines to
be treated as form-feeds. There are at least two things you might want to
do with this. To cause page breaks between articles in a digest, you might
define it as "^--------". To force a page break before a
signature, you could define it as "^-- $". (Then, when you see
"--" at the bottom of the page, you can skip the signature if
you so desire by typing 'n' instead of space.) To do both, you could use
"^--". If you want to break on more than one pattern, you can
use "⎪" to separate the alternatives.
There is some overhead involved in matching each line of the
article against a regular expression. You might wish to use a baud-rate
modifier to enable this feature only at low baud rates.
Default: undefined
- PIPESAVER (%)
- The shell command to execute in order to accomplish a save to a pipe
("s ⎪ command" or
"w ⎪ command"). The command typed by the
user is substituted in as %b.
Default: %(%B=^0$?<%A:tail +%Bc %A ⎪) %b
Explanation: if %B is 0, the command is "<%A %b",
otherwise the command is "tail +%Bc %A ⎪ %b".
- REPLYTO
- The value of the "Reply-To:" header, if needed.
- RNINIT
- This variable is used when initializing trn in rn-compatibility mode (see
the -x switch) or when the TRNINIT variable isn't defined. See the TRNINIT
variable for a description.
- RNMACRO (~)
- The name of the file containing macros and key mappings when running trn
as rn. See also the TRNMACRO variable and the CUSTOM MACROS section.
Default: %./.rnmac
- SAVEDIR (~)
- The name of the directory to save to, if the save command does not specify
a directory name.
Default:
If -/ is set: %p/%c
If +/ is set: %p
- SAVENAME (%)
- The name of the file to save to, if the save command contains only a
directory name.
Default:
If -/ is set: %a
If +/ is set: %^C
- SELECTCHARS
- The characters used by the thread selector to select the associated thread
of discussion. You can specify up to 64 visible characters, including
upper- and lower-case letters, numbers, and many punctuation characters.
Selection characters override command characters in the selector, but are
not excluded from macro expansion, so be careful.
Default: abdefgijlorstuvwxyz1234567890BCFGHIKMVW
(You'll notice various characters are omitted to allow them to be typed as
commands in the selector.)
- SHELL
- The name of your preferred shell. It will be used by the '!', 'S' and 'W'
commands.
Default: whatever your news administrator compiled in.
- SUBJLINE (%)
- Controls the format of the lines displayed by the '=' command at the
article selection level.
Default: %s
- SUPERSEDEHEADER (%)
- The format of the header file for a supersede article.
Default:
From: %L@%H (%N)
Newsgroups: %n
Subject: %S
Distribution: %D
Organization: %o
Supersedes: %i
- TERM
- Determines which termcap entry to use, unless TERMCAP contains the entry.
- TERMCAP
- Holds either the name of your termcap file, or a termcap entry.
Default: /etc/termcap, normally.
- TRNINIT
- Default values for switches may be passed to trn by placing them in
the TRNINIT variable (or RNINIT if you're starting trn in rn-compatibility
mode). Any switch that is set in this way may be overruled on the command
line, or via the '&' command from within trn. Binary-valued
switches that are set with "-switch" may be unset using
"+switch".
If TRNINIT begins with a '/' it is assumed to be the name of a
file containing switches. You can put comments in this file by preceding
them with a '#' as long as this is the first character on a line or it
follows some white-space (which delimits the switches in the file). If
you want to set many environment variables but don't want to keep them
all in your environment, or if the use of any of these variables
conflicts with other programs, you can use this feature along with the
-E switch to set the environment variables upon startup.
Default: " ".
- TRNMACRO (~)
- The name of the file containing macros and key mappings. If the file is
not found, the RNMACRO variable is used to look for your rn macros. For
information on what to put into this file, see the CUSTOM MACROS section.
Default: %./.trn/macros
- UNSHAR (~)
- The shell command to execute in order to accomplish the unshar'ing of a
shell archive.
Default: /bin/sh
- USER
- Your login name. May be interpolated using "%L".
Default: $LOGNAME
- VISUAL (~)
- The name of your editor.
Default: $EDITOR
- XTERMMOUSE
- If you set this variable to 'y' (yes), trn will enable the use of the
xterm mouse in the selector if you are using an xterm. Once enabled
left-clicking on an item selects it while middle-clicking an item will
move to that item. If you click the top (header) line of the selector it
moves up a page. If you click the bottom (footer) line of the selector it
executes the default command for the page (left click) or goes down a page
(middle click). You can also use the right mouse button to move up or down
a page by clicking in the upper-half or lower-half of the screen,
respectively.
- YOUSAID (%)
- Gives the format of the attribution line in front of the quoted article
included by an R command.
Default: In article %i you write:
On startup trn attempts to build a set of macros that map your keypad
arrow keys to useful functions. These default actions are mentioned in the
prior description of each level's commands. If you don't like this (or trn
gets it wrong), you can disable the automatic macros by using the -A
option.
When trn starts up it looks for a file containing macro definitions (see
environment variables TRNMACRO and RNMACRO). Any sequence of commands may be
bound to any sequence of keys, so you could re-map your entire keyboard if you
desire. Blank lines or lines beginning with # in the macro file are considered
comments; otherwise trn looks for two fields separated by white space.
The first field gives the sequence of keystrokes that trigger the macro, and
the second field gives the sequence of commands to execute. Both fields are
subject to % interpolation, which will also translate backslash and caret
sequences. (The keystroke field is interpreted at startup time, but the
command field is interpreted at macro execution time so that you may refer to
% values in a macro.) For example, if you want to reverse the roles of
carriage return and space in trn
^J \040
^M \040
\040 ^J
will do just that. By default, all characters in the command field
are interpreted as the canonical trn characters, i.e. no macro
expansion is done. Otherwise the above pair of macros would cause an
infinite loop. To force macro expansion in the command field, enclose the
macro call with ^( ... ^) thusly:
@s ⎪mysavescript
@w w^(@s^)
You can use the %() conditional construct to construct macros that
work differently under different circumstances. In particular, the current
mode (%m) of trn could be used to make a command that only works at a
particular level. This is particularly vital for the selector which uses
most of the lower-case letters to select the associated item in its display.
For example,
a %(%m=t?a:s art.hold\n)
will return the original letter (a) in the selector, and the
command "s art.hold\n" everywhere else.
%(%{TERM}=vt100?^[[O) /^J
will do the binding only if the terminal type is vt100, though if
you have many of these it would be better to have separate files for each
terminal.
If you want to bind a macro to a function key that puts a common
garbage character after the sequence (such as the carriage return on the end
of Televideo 920 function sequences), DO NOT put the carriage return into
all the sequences or you will waste a CONSIDERABLE amount of internal
storage. Instead of "^AF^M", put "^AF+1", which
indicates to trn that it should gobble up one character after the
F.
Here's a quick run-down of trn's features and commands aimed at the
knowledgeable rn or trn user.
The addition of true reference-line threading is one of the
biggest improvements over rn. This threading allows you to read a discussion
in reply order with an article's replies being attached to the article that
inspired them. Threads will encompass multiple subjects whenever a reply to
an article in the thread arrives with a different subject. This is usually
done to better indicate the topic in the reply when it diverges from the
original subject.
Another big improvement is the selector, which is bound to the '+'
key. The selector displays a list of threads, subjects, or individual
articles to allow you to select the topics that interest you by typing their
associated letter. The difference between the thread and the subject
selector is that the subject selector displays all subjects with a separate
selection letter, even those tied together via their references. This can be
quite useful if you select some threads and desire to weed out some
extraneous discussions: you could switch the selector into exclusive mode
('E' shows only selected threads) and then into subject mode ('Ss') to
separate the threads into their component subjects and deselect or kill the
subjects you don't care about. You don't have to go to all this trouble
using the selector if you prefer to just hit the 'k' key when you start
reading a subject you're not interested in. The selector can also switch
between showing unread articles and articles that have already been read,
allowing you to selectively re-read discussions (this is the 'U' command in
the selector).
Another threaded addition is the article-tree display in the
upper-right corner of the header. Looking at the tree gives you a feel for
how the articles you are reading relate to each other, allowing you to see
at a glance when there are lots of replies and decide if you want to junk an
uninteresting set of replies or perhaps tough it out.
The header display has also been modified to hide a few more lines
by default (e.g. References), but, as always, you can override these with
-h. There is also some more "magic" in the header: the From header
can be trimmed to be just the comment portion (if available), and the Date
header is displayed in local time (by default). Use -H and +H to turn header
magic on and off.
Once you begin reading articles, use the regular movement commands
(n, N, p, P, etc.) as you normally would. You'll find that these commands
track the reply order shown in the tree display. Then try using ^N and ^P,
which follow a subject in the order the articles were posted. Finally, check
out the [, ], (, ), {, and } commands to move around in the article tree a
bit more directly. The first four commands should also be bound to your
keypad's arrow keys, making them easier to type. For example, typing '['
(left) takes you to your parent article, even if it was already read, which
is very useful for tracking down the cited portion of the article in its
original context.
There are additional kill commands for the entire thread (J) and
the current article and all its replies (,).
The KILL files have been extended and the commands inside them are
now referred to memorized commands, since they are often used for selection
rather than killing of articles. There are new, easier ways to add memorized
commands using the 'A'dd and 'T'hread commands. The 'A' command is
subject-oriented, while the 'T' command is article-oriented (meaning they
affect a specific set of articles rather than any article that happens to
have a matching subject). They both prompt you for what kind of command you
want to add, making both auto-killing and auto-selecting just as easy.
There is also an easy way to skip around among the various threads
with the < and > commands. Use them if you want to skip a set of
article and read them later instead of junking them.
Note: your news administrator has the option of turning thread
processing off for individual groups, and thus it is possible for some
groups to not have any pre-processed thread information available for use.
When trn encounters such a group, it generates the thread information
on the fly while entering the group. For really large groups (or really slow
systems), this can take an appreciable amount of time. If you can't talk
your news administrator into pre-threading the group, you can turn off the
threading on a group-by-group basis using the 't' command at the
newsgroup-selection level. Groups turned off in this way are read in the
rn style -- articles arranged in arrival order unless you specify the
-S option, which reads the articles in date order by subject.
Take note of the "e dir" command, which is used to
extract a shell archive or uuencoded file into the specified directory. It
is even possible to extract other data formats if you specify the
appropriate filter command (e.g. "e dir⎪cmd".
Also, if you plan to use macro definitions, it is good to keep in
mind that the selector uses most of the lower-case letters for selection,
and thus it is a good idea to explicitly set the mode(s) in which a macro
applies. For example, if you want to press 'f' from the article
pager/selector to forward the current article to the user "smith",
you could define:
f %(%m=[pa]?⎪mail smith\n:f)
This checks the current mode (%m) and if it is 'p' or 'a' it
expands it to the string "⎪mail smith\n", otherwise it
returns the letter 'f'. In some cases, you may simply wish to exclude the
selector from a macro with the conditional "%m!=t".
Finally, you'll probably want to use the new options, -x
and -X to ensure that all the newest features are available for use.
These options might be on by default, depending on how your administrator
decided to install trn.
Rn was created by Larry Wall <lwall@jpl-devvax.jpl.nasa.gov>
and is now under the direction of Stan Barber <sob@bcm.tmc.edu>.
Threaded version by Wayne Davison <wayne@clari.net>
(Mail all bug reports for trn to Wayne.)
Regular expression routines are borrowed from emacs, by James Gosling.
Hashing routines are modified versions from Geoffrey Collyer.
- %./.newsrc
- status of your news reading
- %./.oldnewsrc
- backup copy of your .newsrc from start of session
- %./.rnlock
- lock file so you don't screw up your .newsrc
- %./.rnlast
- info from last run of trn
- %./.rnsoft
- soft pointers into /usr/lib/news/active to speed startup, synchronous with
.newsrc
- %./.rnhead
- temporary header file to pass to a mailer or news poster
- %./.[t]rnmac
- macro and keymap definitions
- %p
- your news save directory, usually ~/News
- %x/active
- the list of active newsgroups, usually /usr/lib/news/active on systems
that don't use NNTP
- %P
- the public news spool directory, usually /usr/spool/news on systems that
don't use NNTP
- %X/INIT
- system-wide default switches
newsrc(5), more(1), readnews(1), Pnews(1), Rnmail(1)
Generally self-documenting, as they say.
The -h switch can only hide header lines that trn knows about.
The '-' command doesn't cross newsgroup boundaries, and only
undoes the last article selection.
If you edit your .newsrc while trn is running,
trn will happily wipe out your changes when it decides to write out
the .newsrc file.
Marking of duplicate articles as read in cross-referenced
newsgroups will not work unless the Xref patch is installed in inews.
If you get carried away with % or escape substitutions, you can
overflow buffers.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |