[comp.sources.unix] v19i070: NN, a Usenet news reader, Part09/15

rsalz@uunet.uu.net (Rich Salz) (06/27/89)

Submitted-by: storm@texas.dk (Kim F. Storm)
Posting-number: Volume 19, Issue 70
Archive-name: nn/part09

#!/bin/sh
# this is part 9 of a multipart archive
# do not concatenate these parts, unpack them in order with /bin/sh
# file nn.1 continued
#
CurArch=9
if test ! -r s2_seq_.tmp
then echo "Please unpack part 1 first!"
     exit 1; fi
( read Scheck
  if test "$Scheck" != $CurArch
  then echo "Please unpack part $Scheck next!"
       exit 1;
  else exit 0; fi
) < s2_seq_.tmp || exit 1
echo "x - Continuing file nn.1"
sed 's/^X//' << 'NO_NEWS_IS_GOOD_NEWS' >> nn.1
X.SH FILE AND GROUP NAME COMPLETION
XWhen entering a file name or a news group name, a simple
X.B completion
Xfeature is available using the \fBspace\fP, \fBtab\fP, and \fB?\fP keys.
X.LP
XHitting \fBspace\fP anywhere during input will complete the 
X.I current
X.I component
Xof the file name or group name with the
X.I first
Xavailable possibility.
X.LP
XIf this possibility is not the one you want, keep on hitting 
X.B space
Xuntil it appears.
X.LP
XWhen the right completion has appeared, you can just continue typing
Xthe file or group name, or you can hit
X.B tab
Xto fix the current component, and get the
X.I first
Xpossibility for the next component, and then use
X.B space
Xto go through the other possible completions.
X.LP
XThe
X.B ?
Xkey will produce a list of the possible 
X.I completions
Xof the current component.  If the list is too long for the available
Xspace on screen, the key can be repeated to get the next part of the
Xlist.
X.LP
XThe current completion can be deleted with the
X.B erase
Xkey.
X.LP
XThe default value for a file name is the last file name you have
Xentered, so if you enter a
X.B space
Xas the first character after the prompt, the last file name will be
Xrepeated (and you can edit it if you like).  In some cases, a string
Xwill already be written for you in the prompt line, and to get the
Xdefault value in these cases, use the \fBkill\fP key.  This also means
Xthat if you neither want the initial value, nor the default value, you
Xwill have to hit the \fBkill\fP twice to get a clean prompt line.
X.LP
XOther keys can be used for completion instead of the \fBspace\fP,
X\fBtab\fP, and \fB?\fP keys by setting the variables \fBcomp1-key\fP,
X\fBcomp2-key\fP, and \fBhelp-key\fP, respectively.
X.SH POSTING AND RESPONDING TO ARTICLES
XIn both selection mode and reading mode you can post new articles,
Xpost follow-ups to articles, send replies to the author of an article,
Xand you can send mail to another user with the option of including an
Xarticle in the letter.  In reading mode, a response is made to the
Xcurrent article, while in selection mode you will be prompted for an
Xarticle to respond to.
X.LP
XThe following commands are available (the lower-case equivalents are
Xalso available in reading mode):
X.TP
X\&\fBR\fP	{\fBreply\fP}
XReply through mail to the author of the article.  This is the prefered
Xway to respond to an article unless you think your reply is of general
Xinterest.
X.TP
X\&\fBF\fP	{\fBfollow\fP}
XFollow-up with an article in the same newsgroup (unless an alternative
Xgroup is specified in the article header).
X.TP
X\&\fBM\fP	{\fBmail\fP}
XMail a letter or
X.I forward
Xan article to a single recipient.
XIn selection mode, you will be prompted for an article to include
Xin your letter, and in reading mode you will be asked if the current
Xarticle should be included in the letter.
XYou will then be prompted for the recipient of the letter (default
Xrecipient is yourself)
Xand the subject of the letter (if an article is included, you may hit
X.B space
Xto get the default subject which is the subject of the included article).
X.TP
X\&\fB:post\fP	{\fBpost\fP}
XPost a new article to any newsgroup.  This command will prompt you for
Xa 
X.I comma-separated 
Xlist of newsgroups to post to (you cannot enter a space because 
X.B space
Xis used for group name completion as described below).
X.LP
XGenerally, \fInn\fP will construct a file with a suitable header, optionally
Xinclude a copy of the article in the file with each non-empty line
Xprefixed by a `>' character (except in mail mode), and invoke an
Xeditor of your choice (using the EDITOR environment variable) on this
Xfile, positioning you on the first line of the body of the article (if
Xit knows the editor).
X.PP
XWhen you have completed editing the message, it will compare it to the
Xunedited file, and if they are identical (i.e. you did not make any
Xchanges to the file), or it is empty, the operation is cancelled.
XOtherwise you will be prompted for an action to take on the
Xconstructed article (enter first letter followed by
X.BR return ):
X.br
X.sp 0.5v
X	Action: (a)bort (e)dit (o)k (s)end: 
X.sp 0.5v
X.br
XYou now have the opportunity to 
X.BR a :
Xthrow the article away,
X.BR e :
Xedit the file again, or
X.B o
Xand
X.BR s :
Xsend the article or letter.
X.SH JUMPING TO OTHER GROUPS
XBy default \fInn\fP will present the news groups in a predefined
Xsequence (see the section on Presentation Sequence later on).
XTo override this sequence and have a look at any other group the
X.B G
X{\fBgoto-group\fP} command available in both selection and reading
Xmode enables you to move freely between all the newsgroups.
X.LP
XFurthermore, the
X.B G
Xcommand enables you to open folders and other files, to read old
Xarticles you have read before, and to grep for a specific subject in a
Xgroup.
X.PP
XIt is important to notice that normally the goto command is recursive,
Xi.e. a new \fImenu level\fP is created when the specified group or
Xfolder is presented, and when it has been read, \fInn\fP will continue
Xthe activity in the group that was presented before the goto command
Xwas executed.  However, you can avoid entering a new menu level by
Xusing the
X.B j
Xreply described below.  The current menu level (i.e. number of nested
Xgoto commands) will be shown in the prompt line as "<N>" (in reverse
Xvideo).
X.PP
XThe goto command is very powerful, but unfortunately also a little bit
Xtricky at first sight, because the facilities it provides depend a
Xlittle bit on the context in which the command is used.
X.PP
XWhen executed, the goto command will prompt you for the name of the
Xnewsgroup, folder, or file to open.  It will use the first letter
Xyou enter to distinguish these three possibilities:
X.TP
X.I letter\ or\ digit
XThe answer is taken to be the name of a newsgroup.
X.TP
X.I +
X.br
XThe answer is taken to be the name of a folder.
X.TP
X.I \&./\ \ or\ \ ~/\ \ or\ \ /
XThe answer is taken to be the name of a file, either relative to the
Xcurrent directory, relative to your home directory, or an absolute
Xpath name for the file.
X.TP
X.B return
XAn empty answer is equivalent to the current newsgroup.
X.LP
XSpecifying a folder or a file will cause \fInn\fP to treat the file
Xlike a digest and split it into separate articles (not physically!)
Xwhich are then presented on a menu in the usual way, allowing you to
Xread or save individual subarticles from the folder.
X.LP
XWhen you enter a groupname, \fInn\fP will ask you how many articles in
Xthe group you want to see on the menu.  You can give the following
Xanswers:
X.TP
X.I a number N
XIn this case you will get the newest N articles in the group, or if
Xyou specified the current group (by hitting
X.B return
Xto the group name prompt), you will get that many
X.I extra
Xarticles included on the same menu (without creating a new menu level).
X.TP
X.B j
XThis answer can only be given if there are unread articles in the
Xgroup.  It will instruct nn to jump directly to the specified group in
Xthe presentation sequence \fIwithout\fP creating a new menu level.
X.TP
X.B u
XThis instructs \fInn\fP to present the 
X.I unread
Xarticles in the group (if there are any).  If you have already read
Xthe group (in the current invocation of \fInn\fP), the
X.B u
Xanswer will instruct \fInn\fP to present the articles that were unread
Xwhen you entered \fInn\fP.
X.TP
X.B a
XThis instruct \fInn\fP to present
X.I all
Xarticles in the group.
X.TP
X\fB=\fP\fIword\fP
XThis instructs \fInn\fP to search
X.I all
Xarticles in the groups, but only present the articles containing the word
X.I word
Xin the subject.
X.TP
X\fB=/\fP\fIregexp\fP
XThis instructs \fInn\fP to search the group for the articles whose
Xsubject matches the regular expression
X.IR regexp .
X.TP
X.B return
XThe meaning of an empty answer depends on the context: if there are
Xunread articles in the specified group the unread articles will be
Xpresented, otherwise 
X.I all
Xarticles in the group will be included in the menu.
X.LP
XIf you specified the current group, and the menu already contains all
Xthe available articles, \fInn\fP will directly prompt for a word to
Xsearch for in the subject of all articles (the prompt will be an equal
Xsign.)
X.LP
XWhen the goto command creates a new menu level, \fInn\fP will not
Xperform auto kill or selection in the group.  You can use the
X.B +
Xcommand in menu mode to perform the auto-selections.
X.LP
XThere are three commands in the goto family:
X.TP
X\&\fBG\fP	{\fBgoto-group\fP}
XThis is the general goto command described above.
X.TP
X\&\fBB\fP	{\fBback-group\fP}
XBackup one or more groups.  You can hit this key one or more times to
Xgo back in the groups already presented (including those without new
Xarticles); when you have found the group you are looking for, hit
X.B space
Xto enter it.
X.TP
X\&\fBA\fP	{\fBadvance-group\fP}
XAdvance one or more groups.  This command is similar to the 
X.B B
Xcommand, but operates in the opposite direction.  You can freely mix
Xthe 
X.B A 
Xand 
X.B B 
Xcommands, and you can also use the 
X.B G 
Xcommand directly when you are prompted with a group.
X.LP
XTo show the use of the goto command some typical examples on
Xits use are given below:
X.sp
X.nf
X.B "Present the unread articles in the dk.general group"
X.sp 0.5v
X 	\fBG\fP dk.general \fBreturn\fP \fBu\fP
X.sp
X.B "Jump directly to the gnu.emacs group and continue from there"
X.sp 0.5v
X 	\fBG\fP gnu.emacs \fBreturn\fP \fBj\fP
X.sp
X.B "Include the last 10 READ articles in the current group menu"
X.sp 0.5v
X 	\fBG\fP \fBreturn\fP 10 \fBreturn\fP
X.sp 0.5v
X.fi
XAnswering \fBreturn\fP to the group name prompt will make the goto
Xcommand apply to the current group and prompt for the number of
X\fIextra\fP articles (which have already been read) to include in the
Xpresent menu.  This will \fInot\fP create a new menu level.
X.nf
X.sp
X.B "Find all articles in rec.music.misc on the subject Floyd"
X.sp 0.5v
X 	\fBG\fP rec.music.misc \fBreturn\fP 
X 	\fB=\fP floyd \fBreturn\fP 
X.sp 0.5v
X.fi
XNotice that case is ignored when searching for the word in the subject
Xlines.
X.nf
X.sp
X.B "Open the folder +nn"
X.sp 0.5v
X 	\fBG\fP +nn \fBreturn\fP
X
X.fi
X.SH AUTOMATIC KILL AND SELECTION
XYou can easily instruct \fInn\fP to 
X.I kill
Xor
X.I select
Xarticles with specific subjects or from specific authors using the
Xfollowing command:
X.TP
X\&\fBK\fP	{\fBkill-select\fP}
XPut a permanent or temporary entry into your personal
X.I kill
Xfile.  The contents of the entry is specified during a short dialog
Xthat is described in details below.
XThis command is available in both selection and reading mode.
X.LP
XEntries in the kill file may apply to a single newsgroup or to all
Xnewsgroups.  Furthermore, entries may be permanent or they may be
Xexpired a given number of days after their entry.
X.LP
XTo increase performance, \fInn\fP uses a compiled version of the kill
Xfile which is read in when \fInn\fP is invoked.  The compiled kill
Xfile will automatically be updated if the normal kill file has been
Xmodified.
X.LP
XThe following dialog is used to build the kill file entry:
X.TP
X\fIAUTO (K)ill or (S)elect (CR => Kill subject 1 month)\fP
XIf you simply want \fInn\fP to kill all articles with the subject of the
Xcurrent article (in reading mode) or a specific article (which
X\fInn\fP will prompt for in selection mode), just hit
X.BR return .
XThis will cause \fInn\fP to create an entry in the kill file to 
Xkill the current (or specified) subject in the current group for a
Xperiod of 30 days (which should be enough for the discussion to die out).
X.sp 0.5v
XIf this "default behaviour" is not what you want, just answer either
X.I k
Xor
X.I s
Xto kill or select articles, respectively, which will bring you on to
Xthe rest of the questions.
X.TP
X\fIAUTO SELECT on (S)ubject or (N)ame ?\fP
X(The 
X.I SELECT
Xwill be substituted with
X.I KILL 
Xdepending on the previous answer).
XHere you specify whether you want the kill or select to depend on the
Xsubject of the article (\fBs\fP or \fBspace\fP),
Xor on the 
Xname of the author (\fBn\fP). 
X.TP
X\fISELECT NAME:\fP
X(Again
X.I SELECT
Xmay be substituted with
X.I KILL
Xand
X.I SUBJECT
Xmay replace
X.IR NAME ).
XYou must now enter a name (or subject) to select (or kill).  In reading
Xmode, you may just hit 
X.B return 
X(or 
X.BR % )
Xto use the name (or subject) of the current article.  In selection
Xmode, you can use the name (or subject) from an article on the menu by
Xanswering with
X.B %
Xfollowed by the corresponding article identifier.
X.sp 0.5v
XWhen the name or subject is taken from an article (the current or one
Xfrom the menu), \fInn\fP will only select or kill articles where the
Xname or subject matches the original name or subject exactly including
Xcase.
X.sp 0.5v
XOtherwise, \fInn\fP will select or kill articles which 
X.I contain
Xthe specified name or subject (or part thereof) anywhere in the name
Xor subject ignoring case.
X.TP
X\fISELECT in (G)roup `dk.general' or in (A)ll groups\fP
XYou must now specify whether the selection or kill should apply to
Xthe current group only (\fBg\fP or \fBspace\fP)
Xor to all groups (\fBa\fP).
X.TP
X\fILifetime of entry in days (P)ermanent\fP
XYou can now specify the lifetime of the entry,
Xeither by entering a number specifying the number of days
Xthe entry should be active, or
X.B p
Xto specify the entry as a permanent entry.  An empty reply is
Xequivalent to 30 days.
X.TP
X\fICONFIRM SELECT ....\fP
XFinally, you will be asked to confirm the entry, and you should
Xespecially note the presence or absence of the word 
X.I exact
Xwhich specify whether an exact match applies for the entry.
X.SH THE FORMAT OF THE KILL FILE
XThe normal kill file consists of one line for each entry.  Empty
Xlines and lines starting with a # character are ignored.  \fInn\fP
Xautomatically places a # character in the first position of expired
Xentries when it compiles the kill file.
X.LP
XEach line has the following format
X.br
X    [ \fIexpire-time\fP : ] [ \fIgroup name\fP ] : \fIflags\fP : \fIstring\fP
X.br
X.LP
XPermanent entries have no 
X.I expire-time
X(in which case the colon is omitted as well!).  Otherwise, the 
X.I expire-time
Xdefines the time (as a time_t value) when the entry should be expired.
X.LP
XIf a 
X.I group name
Xis present, the entry applies to that group only;
Xotherwise, the entry applies to all groups.
X.LP
XThe 
X.I flags
Xfield consist of two or three characters:
X.br	
X\- The first character is either a 
X.B +
Xor a 
X.B !
Xcharacter specifying a
Xselect or a kill entry, respectively.
X.br
X\- The second character is either an
X.B n
Xor an 
X.B s
Xspecifying whether the entry applies to the
Xname or to the subject of an article.
X.br
X\- The optional third character is an 
X.B =
Xsign which
Xspecify that the match against the name or subject must be an
Xexact match (including case).
X.LP
XThe 
X.I string
Xfield in the entry is the name or subject that will be
Xmatched against the name or subject of each article in the group (or
Xall groups).  Notice, that unless an exact match is specified, the
Xspecified name or subject may occur
X.I anywhere
Xin a name or a subject, and that case is ignored.
X.LP
XIt is completely safe to update the kill file (obeying the format of
Xcourse), for example to remove expired entries, or to "undo" a 
X.B K
Xcommand.
X.SH SHELL ESCAPES
XThe 
X.B !
Xcommands available in selection and reading mode are identical in
Xoperation (with one exception).  When you enter the shell escape
Xcommand, you will be prompted for a shell command.  This command will
Xbe fed to /bin/sh (or the shell specified in the SHELL environment
Xvariable) after the following substitutions have been performed on the
Xcommand:
X.LP
XThe ealier described file name expansions will be performed on all
Xarguments.
X.TP
X.B $G
Xwill be substituted with the name of the current news group.
X.TP
X.B $L
Xwill be substituted with the \fIlast component\fP of the name of the
Xcurrent news group.
X.TP
X.B $F
Xwill be substituted with the name of the current news group with the
Xperiods replaced by slashes.
X.TP
X.B $N
Xwill be substituted with the (local) article number (only defined in
Xreading mode).
X.TP
X.B $A
Xis replaced by the full path name of the file containing the current article
X(only defined in reading mode).
X.TP
X.B %
XSame as $A.
X.LP
XWhen the shell command is completed, you will be asked to hit any key
Xto continue.  If you hit the 
X.B !
Xkey again, you will be prompted for a new shell command.  Any other
Xkey will redraw the screen and return you to the mode you came from.
X.SH MISCELLANEOUS COMMANDS
XBelow are more useful commands which are available in both
Xselection and reading modes.
X.TP
X\&\fBU\fP	{\fBunsub\fP}
XUnsubscribe to the current group.  You will not see this group
Xanymore.  If you are not subscribing to the group, you will be given
Xthe possibility to 
X.I resubscribe
Xto the group!  This may be used in connection with the
X.B G
Xcommand to resubscribe a group.
X.TP
X\&\fBC\fP	{\fBcancel\fP}
XCancel (delete) an article in the current group or folder.  Cancelling
Xarticles in a folder will cause the folder to be rewritten when it is
Xclosed.  In selection mode, you will be prompted for the identifier of
Xthe article to cancel.  Normal users can only cancel their own
Xarticles.
X.TP
X\&\fBY\fP	{\fBoverview\fP}
XProvide an overview of the groups with unread articles.
X.TP
X\&\fBL\fP	{\fBlayout\fP}
XChange menu layout in selection mode.  The menu will be redrawn using
Xthe next layout (cycling through ..., 2, 3, 0, 1, ...)
X.LP
XMost of the commands in \fInn\fP are bound to a key and can be activated
Xby a single keystroke.  However, there are a few commands that
Xcannot be bound to a key at all.
X.LP
XAs shown in the keystroke command descriptions, all commands have a
Xname, and it is possible to activate a command by name with the
X.I extended
X.I command
Xkey (\fB:\fP).  Hitting this key will prompt you for the name of a
Xcommand (and parameters).  For example, an alternative to hitting the
X.B R
Xkey to reply to an article is to enter the extended command
X.B :reply
Xfollowed by 
X.BR return .
XThe
X.B :post
Xand
X.B :unshar
Xcommands described earlier can also be bound to a key.  The complete
Xlist of commands which can be bound to keys is provided in the section
Xon Key Mappings below.
X.LP
XThe following extended commands 
X.I cannot
Xbe bound to a key, mainly because they require additional parameters
Xon the prompt line, or because it should not be possible to activate
Xthem too easily.
X.TP
X\fB:admin\fP
XEnter administrative mode.  This is identical in operation to the 
X.IR nnadmin (1M)
Xprogram except that the (V)erify operation cannot be performed.
X.TP
X\fB:cd\fP [ \fIdirectory\fP ]
XChange current working directory.  If the directory argument is not provided,
X\fInn\fP will prompt for it.
X.TP
X\fB:compile\fP
XRecompile the 
X.I kill
Xfile.  This is not necessary under normal operation since \fInn\fP
Xautomatically compiles the file on start-up if it has changed.
X.TP
X\fB:coredump\fP
XAbort with a core dump.  For debugging purposes only.
X.TP
X\fB:define\fP \fImacro\fP
XDefine macro number \fImacro\fP as described in the Macro Definition
Xsection below.  If \fImacro\fP is omitted, the next free macro number
Xwill be chosen.
X.TP
X\fB:dump\fP \fItable\fP
XSame as the 
X.B :show
Xcommand described below.
X.TP
X\fB:help\fP [ \fIsubject\fP ]
XProvide online help on the specified subject.  If you omit the
Xsubject, a list of the available topics will be given.
X.TP
X\fB:man\fP
XCall up the online manual.  The manual is presented as a normal folder
Xwith the program name in the `From' field and the section title in the
X\&`subject' field.  All the normal commands related to a folder works
Xfor the online manual as well.
X.TP
X\fB:map\fP \fIarguments\fP 
XThis is the command used for binding commands to the keys.  It is
Xfully described in the Key Mapping section below.
X.TP
X\fB:mkdir\fP [ \fIdirectory\fP ]
XCreate the directory (and the directories in its path).  It will
Xprompt for at directory name if the argument is omitted.
X.TP
X\fB:pwd\fP
XPrint path name of current working directory on message line.
X.TP
X\fB:q\fP
XHas no effect besides redrawing the screen if necessary.  If an
Xextended command (one which is prefixed by a :) produces any output
Xrequirering the screen to be redrawn, the screen will not be redrawn
Ximmediately.  Instead another : prompt is shown to allow you to enter
Xa new extended command immediately.  It is sufficient to hit
X.B return
Xto redraw the screen, but it has been my experience that entering
X.B q return
Xin this situation happens quite often, so it was made a no-op.
X.TP
X\fB:q!\fP
XQuit \fInn\fP without updating the 
X.I rc
Xfile.  This will only work if the
X.B backup
Xvariable is set (see the explanation below).
X.TP
X\fB:Q\fP
XQuit \fInn\fP.  This is equivalent to the normal
X.B Q
Xcommand.
X.TP
X\fB:rmail\fP 
XOpen your mailbox (see the \fBmail\fP variable) as a folder to
Xread the incoming messages.  This is \fInot\fP a full mail interface
X(you cannot delete messages, no cc: on replies, etc), but it can give
Xyou a quick glance at new mail without leaving \fInn\fP.
X.TP
X\fB:set\fP \fIvariable\fP [ \fIvalue\fP ]
XSet a boolean variable to true or assign the value to a string or
Xinteger variable.  The
X.B :set
Xcommand is described in details in the section on VARIABLES.
X.TP
X\fB:sh\fP
XSuspend \fInn\fP, or if that is not possible, spawn an interactive shell.
X.TP
X\fB:show kill\fP
XShow the kill entries that applies to the current group and to all groups.
X.TP
X\fB:show groups\fP \fImode\fP
XShow the total number or the number of unread articles in the current
Xgroup, depending on 
X.IR mode :
X.B all
Xresults in a listing of the number of unread articles in all groups
Xincluding groups which you have unsubscribed to; groups
Xwithout unread articles are not included, or
X.B total
Xresults in a listing of the total number of articles in all existing
Xgroups.  Any other
X.I mode
Xresults in a listing of the number of unread articles in all
Xsubscribed groups (same as the
X.B Y
Xcommand).
X.TP
X\fB:sort\fP [ \fImode\fP ]
XReorder the articles on the menu according to 
X.IR mode :
Xif omitted sort the articles according to the subject (and further
Xsort articles with the same subject according to their age), if it is
X.B age
Xsort articles only according to their age (posting date and time), or if
Xit is
X.B arrival
Xor
X.B no
Xin the order in which they arrived on the local system (which is a
Xcompletely arbitrary order).
X.TP
X\fB:unread\fP [ \fIarticles\fP ]
XMark the current group as unread.  If the argument is omitted, the
Xnumber of unread articles in the group will be set to the number of
Xunread articles when \fInn\fP was invoked.  Otherwise, the argument
Xspecifies the number of unread articles.
X.TP
X\fB:unset\fP \fIvariable\fP
XSet a boolean variable to false or clear an integer variable.
X.TP
X\fB:x\fP
XQuit \fInn\fP and
X.I mark
Xthe current group as read!
X.SH VARIABLES AND OPTIONS
XIt is possible to control the behaviour of \fInn\fP through the
Xsetting (and unsetting) of the variables described below.  There are
Xthree ways of setting variables:
X.br
X\- Through command line options when \fInn\fP is invoked.
X.br
X\- Through \fBset\fP commands in the init file.
X.br
X\- Through the \fB:set\fP extended command when you run \fInn\fP.
X.LP
XThere are three types of variables:
X.br
X\- Boolean variables
X.br
X\- Integer variables
X.br
X\- String variables
X.br
X.LP
XBoolean variables control a specific function in \fInn\fP, e.g.
Xwhether the current time is shown in the prompt line.  A boolean
Xvariable is set to
X.B true
Xwith the command
X.br
X	\fBset\fP \fIvariable\fP
X.br
Xand it is set to 
X.B false
Xwith either of the following (equivalent) commands:
X.br
X	\fBunset\fP \fIvariable\fP
X.br
X	\fBset no\fP\fIvariable\fP
X.LP
XYou can also toggle the value of a boolean variable using the command:
X.br
X	\fBtoggle\fP \fIvariable\fP
X.LP
XFor example:
X.br
X	\fBset\fP time
X.br
X	\fBunset\fP time
X.br
X	\fBset\fP notime
X.br
X	\fBtoggle\fP time
X.LP
XInteger variables control an amount e.g. the size of the preview
Xwindow, or the maximum number of articles to read in each group.  They
Xare set with the following command:
X.br
X	\fBset\fP \fIvariable value\fP
X.br
XIn some cases, not setting an integer value has a special meaning,
Xfor example, not having a minimal preview window or reading all
Xarticles in the groups no matter how many there are.  The special
Xmeaning can be re-established by the following command:
X.br
X	\fBunset\fP \fIvariable\fP
X.br
XFor example:
X.br
X	\fBset\fP window 7
X.br
X	\fBunset\fP limit
X.br
X.LP
XString variables may specify directory names, default values for
Xprompts, etc.  They are set using the command
X.br
X	\fBset\fP \fIvariable string\fP
X.br
XExcept for file and directory names, the 
X.I string
Xvalue starts at the first non-blank character after the variable name
Xand continues to the end of the line \fIincluding all trailing
Xblanks on the line\fP!
X.LP
XThe current variable settings can be shown with the 
X.B :set
Xcommand without arguments.
X.LP
XThe following variables are available:
X.TP
X\fBbackup\fP	(boolean, default true)
XBackup the rc file on start-up.  Setting 
X.B backup
Xcauses \fInn\fP to keep a backup of the 
X.I rc
Xfile (used by \fInn\fP to register
Xwhich articles have been read).  You can then exit
X\fInn\fP without updating the rc file with the \fB:q!\fP command.
X.TP
X\fBcomp1-key\fP \fIkey\fP	(key, default \fBspace\fP)
XThe key which gives the first/next completion, and the default value
Xwhen \fInn\fP is prompting for a string, e.g. a file name.
X.TP
X\fBcomp2-key\fP \fIkey\fP	(key, default \fBtab\fP)
XThe key which ends the current completion and gives the first
Xcompletion for the next component
Xwhen \fInn\fP is prompting for a string, e.g. a file name.
X.TP
X\fBconfirm\fP		(boolean, default false)
XIn some cases, \fInn\fP will sleep one second (or more) when it has shown a
Xmessage to the user, e.g. in connection with macro debugging.  Setting
X.B confirm
Xwill cause \fInn\fP to
X\fIwait\fP for you to confirm all messages by hitting any
Xkey.  (It will show the symbol <> to indicate that it is awaiting
Xconfirmation.)
X.TP
X\fBconfirm-append\fP		(boolean, default false) 
XNormally when
Xyou save in a file, \fInn\fP will only ask for confirmation when it
Xhas to create the file.  When
X.B confirm-append
Xis set, you will also be asked for confirmation before appending an
Xarticle to an existing file.
X.TP
X\fBdate\fP		(boolean, default true)
XIf set \fInn\fP will show the article posting date when articles are
Xread.
X.TP
X\fBdebug\fP \fImask\fP	(integer, default 0)
XLook in the source if you are going to use this.
X.TP
X\fBdefault-save-file\fP \fIfile\fP	(string, default +$F)
XThe default save file used in quick save mode.  It can also be
Xspecified using the abbreviation "+" as the file name in normal save
Xmode.
X.TP
X\fBdelay-redraw\fP		(boolean, default false)
XNormally, \fInn\fP will redraw the screen immediately after an
Xextended command (:command) which cleared the screen.  If
X\fBdelay-redraw\fP is set \fInn\fP will prompt for a new command
Xwithout redrawing the screen; it is redrawn when you give an empty
Xreply.
X.TP
X\fBerase-key\fP \fIkey\fP	(key, default tty erase key)
XThe key which erases the last input character
Xwhen \fInn\fP is prompting for a string, e.g. a file name.
X.TP
X\fBexpert\fP		(boolean, default false)
XIf set \fInn\fP will use slightly shorter prompts (e.g. not tell you
Xthat ? will give you help), and be a bit less verbose in a few other cases.
X.TP
X\fBfolder\fP \fIdirectory\fP	(string, default ~/News)
XThe full pathname of the 
X.I folder directory
Xwhich will replace the + in folder names.  It will be initialized from
Xthe FOLDER environment variable if it is not set in the 
X.I init
Xfile.
X.TP
X\fBfsort\fP		(boolean, default true)
XWhen set, folders are sorted alphabetically according to the subject
X(and age).
XOtherwise, the articles in 
Xa folder will be presented in the sequence in which they were saved.
X.TP
X\fBheader-lines\fP \fIlist\fP	(string, no default)
XWhen set, it determines the list of header fields that are shown when
Xan article is read instead of the normal one line header showing the
Xauthor and subject.  See the full description in the section on
XCustomized Article Headers below.
X.TP
X\fBhelp-key\fP \fIkey\fP	(key, default \fB?\fP)
XThe key which ends the current completion and gives a list of possible
Xcompletions for the next component
Xwhen \fInn\fP is prompting for a string, e.g. a file name.
X.TP
X\fBincluded-mark\fP \fIstring\fP	(string, default ">")
XThis string is prefixed to all lines in the original article that are
Xincluded in a reply or a follow-up.  (Now you have the possibility to
Xchange it, but please don't.  Lines with a mixture of prefixes like
X.br
X   : orig-> <> } ] #- etc.
X.br
Xare very difficult to comprehend.  Let's all use the standard folks!
X(And hack inews if it is the 50% rule that bothers you.)
X.TP
X\fBkill\fP		(boolean, default true)
XIf set, \fInn\fP performs automatic kill and selection based on the
X.I kill
Xfile.
X.TP
X\fBkill-key\fP \fIkey\fP	(key, default tty kill key)
XThe key which deletes the current line
Xwhen \fInn\fP is prompting for a string, e.g. a file name.
X.TP
X\fBlayout\fP \fInumber\fP	(integer, default 1)
XSet the menu layout.  The argument must be a number between 0 and 3.
X.TP
X\fBlimit\fP \fImax-articles\fP	(integer, default infinite)
X.I Limit
Xthe maximum number of articles presented in each group to 
X.I max-articles.
XThe default is to present
X.I all
Xunread articles no matter how many there are.  Setting this variable,
Xonly the most recent 
X.I max-articles
Xarticles will be presented, but all the articles will still be marked
Xas read.  This is useful to get up-to-date quickly if you have not
Xread news for a longer period.
X.TP
X\fBlong-menu\fP		(boolean, default false)
XIf set \fInn\fP will not put an empty line after the header line and
Xan empty line before the prompt line; this gives you two extra menu
Xlines.
X.TP
X\fBmacro-debug\fP	(boolean, default false)
XIf set \fInn\fP will trace the execution of all macros.  Prior to the
Xexecution of each command or operation in a macro, it will show the
Xname of the command or the input string or key stroke at the bottom of
Xthe screen.
X.TP
X\fBmail\fP \fIfile\fP	(string, default not set)
X\fIfile\fP must be a full path name of a file.  If defined, \fInn\fP will
Xcheck for arrival of new mail every minute or so by looking at the
Xspecified file.
X.TP
X\fBmail-format\fP	(boolean, default false)
XWhen set, \fInn\fP will save articles in a format that is compatible
Xwith normal mail folders.
X.TP
X\fBmail-record\fP \fIfile\fP	(string, default not set)
X\fIfile\fP must be a full path name of a file.  If defined, all replies and
Xmail will be saved in this file in standard
X.I mailbox
Xformat, i.e. you can use you favourite mailer (and \fInn\fP) to look at
Xthe file.
X.TP
X\fBmark-overlap\fP	(boolean, default false)
XWhen set, \fInn\fP will draw a line (using the underline capabilities
Xof the terminal if possible) to indicate the end of the overlap (see the
X\fBoverlap\fP variable).
X.TP
X\fBmonitor\fP		(boolean, default false)
XWhen set, \fInn\fP will show 
X.I all
Xcharacters in the received messages using a "cat -v" like format.
XOtherwise, only the printable characters are shown (default).
X.TP
X\fBnews-record\fP \fIfile\fP	(string, default not set)
XSave file for follow-ups and postings.  Same rules and format as the
X\fBmail-record\fP variable.
X.TP
X\fBnewsrc\fP		(boolean, default false)
XWhen set, \fInn\fP will synchronize its own
X.I rc
Xfile with the
X.I .newsrc
Xfile used by other news readers.  Notice that \fInn\fP does not allow
Xindividual articles to be marked unread, and some articles marked
Xunread in
X.I .newsrc
Xmay silently be marked as read by \fInn\fP when the group is read.
X.TP
X\fBold\fP [\fImax-articles\fP]	(integer, default not set)
XWhen 
X.B old
Xis set, \fInn\fP will present (or scan) all (or the last
X\fImax-articles\fP) unread as well as 
Xread articles.  While
X.B old
Xis set, \fInn\fP will
X.I never
Xmark any unread articles as read.
X.TP
X\fBoverlap\fP \fIlines\fP	(integer, default 2)
XSpecifies the number of overlapping lines from one page to the next
Xwhen paging through an article in reading mode.
XThe last line from the previous page
Xwill be underlined if the terminal has that capability.
X.TP
X\fBpager\fP \fIshell-command\fP	(string, default is system dep.)
XThis is the command which output from \fBunshar\fP and \fBpatch\fP
Xis piped through as well as most of the output from
X.IR nnadmin (1M).
X.TP
X\fBpatch-cmd\fP \fIshell-command\fP	(string, default "patch")
XThis is the command which is invoked by the \fBpatch\fP command.
X.TP
X\fBprinter\fP \fIshell-command\fP	(string, default is system dep.)
XThis is the default value for the 
X.B print
Xcommand.  It should include an option which prevents the spooler from
Xechoing a job-id or similar to the terminal to avoid problems with
Xscreen handling (e.g. lp -s on System V).
X.TP
X\fBquick-save\fP	(boolean, default false)
XWhen set, \fInn\fP will not prompt for a file name when an article is
Xsaved (unless it belongs to a folder).  
XInstead it uses the save file specified for the current group in the
Xinit file or the default save file.
X.TP
X\fBrecord\fP \fIfile\fP	(string, no default)
XSetting this 
X.I pseudo
Xvariable will set both the \fBmail-record\fP and the
X\fBnews-record\fP variables to the specified pathname.
X.TP
X\fBrepeat\fP		(boolean, default false)
XWhen set, \fInn\fP will not eliminate duplicated subject lines on
Xmenus (I cannot imagine why anyone should want that, but....)
X.TP
X\fBretry-on-error\fP \fItimes\fP	(integer, default not set)
XWhen set, \fInn\fP will try the specified number of \fItimes\fP to
Xopen an article before reporting that the article does not exist
Xanymore.  This may be necessary in some network environments.
X.TP
X\fBsave-counter\fP \fIformat\fP	(string, default "%d")
XThis is the printf-format which \fInn\fP uses to create substitution
Xstring for the trailing * in save file names.  You can set this to
Xmore complex formats if you like, but be sure that it will produce
Xdifferent strings for different numbers.  An alternative format which
Xseems to be popular is ".%02d" .
X.TP
X\fBsave-report\fP	(boolean, default true)
XWhen set, a message reporting the number of lines written is shown
Xafter saving an article.  Since messages are shown for a few seconds,
Xthis may slow down the saving of many articles (e.g. using the 
X.B S*
Xcommand).
X.TP
X\fBsilent\fP		(boolean, default false)
XWhen set, \fInn\fP wont print the logo or "No News" if there are no
Xunread articles.  Only useful to set in the init file or with the 
X.B \-Q
Xoption.
X.TP
X\fBsort\fP		(boolean, default true)
XWhen set, \fInn\fP will sort articles according to subject (and age
Xfor identical subjects).  Otherwise, articles will be presented in
Xorder of arrival.
X.TP
X\fBsplit\fP		(boolean, default true)
XWhen set, digests will automatically and silently be split into
Xsub-articles which are then handled transparently as normal articles.
XOtherwise, digests are presented as one article (which you can split
Xon demand with the 
X.B G
Xcommand).
X.TP
X\fBstop\fP \fIlines\fP	(integer, default not set)
XWhen 
X.B stop
Xis set, \fInn\fP will only show the first \fIlines\fP lines of the
Xof each article 
Xbefore prompting you to continue.  This is useful on slow terminals and
Xmodem lines to be able to see the first few lines of longer articles
X(and skipping the rest with the
X.B n
Xcommand).
X.TP
X\fBtime\fP		(boolean, default true)
XWhen set, \fInn\fP will show the current time in the prompt line.
XThis is useful on systems without a 
X.I sysline (1)
Xutility.
X.TP
X\fBwindow\fP \fIsize\fP	(integer, default not set)
XWhen set, \fInn\fP will reserve the last \fIsize\fP lines of the menu
Xscreen for a preview window.  If not set, \fInn\fP will clear the
Xscreen to preview an article if there are too few empty lines at the
Xbottom of the screen.  As a side effect, it can also be used to reduce
Xthe size of the menus, which may be useful on slow terminals.
X.TP
X\fBword-key\fP \fIkey\fP	(key, default ^W)
XThe key which erases the last input component or word
Xwhen \fInn\fP is prompting for a string, e.g. the last name in a path
Xname.
X.SH CUSTOMIZED ARTICLE HEADER PRESENTATION
XNormally, \fInn\fP will just print a (high-lighted) single line header
Xcontaining the author, subject, and date (optional) of the article
Xwhen it is read.
X.LP
XBy setting the
X.B header-lines
Xvariable as described below, it is possible to get a more informative
Xmulti line header with optional high-lighting and underlining.
X.LP
XThe
X.B header-lines
Xvariable is set to a list of header line identifiers, and the
Xcustomized headers will then contain exactly these header lines
X\fIin the specified order\fP.
X.LP
XThe following header line identifiers are recognized in the 
X.B header-lines
Xvariable:
X.LP
X.in +8n
X.ta 5m
X.br
X\fBA\fP	Approved:
X.br
X\fBB\fP	Distribution:
X.br
X\fBD\fP	Date:
X.br
X\fBF\fP	From:
X.br
X\fBI\fP	Message-Id:
X.br
X\fBK\fP	Keywords:
X.br
X\fBL\fP	Lines:
X.br
X\fBN\fP	Newsgroups:
X.br
X\fBO\fP	Organization:
X.br
X\fBP\fP	Path:
X.br
X\fBR\fP	Reply-To:
X.br
X\fBS\fP	Subject:
X.br
X\fBW\fP	Followup-To:
X.br
X\fBX\fP	References:
X.in -8n
X.DT
X.LP
XPreceding the identifier with an equal sign "=" or an underscore "_"
Xwill cause the header field contents to be high-lighted or underlined.
X.LP
XIncluding an asterisk "*" in the list will produce the standard one
Xline header at that point.
X.LP
XExample:  The following setting of the 
X.B header-lines
Xvariable will show the author (underlined), organization, posting
Xdate, and subject (high-lighted) when articles are read:
X.sp 0.5v
X	set header-lines _FOD=S
X.SH COMMAND LINE OPTION
XSome of the command line options have already been described, but
Xbelow we provide a complete list of the effect of each option by
Xshowing the equivalent 
X.BR set ,
X.BR unset ,
Xor
X.B toggle
Xcommand.
X.LP
XNotice that the init files are read \fIbefore\fP the options are
Xparsed (unless you use the \-\fBI\fP option).  Therefore, the options
Xwhich are related to boolean variables set in the init file will
Xtoggle the value set there, rather than the default value.
XConsequently, the meaning of the options are also user-defined.
X.LP
XThe explanations below describe the effect related to the default
Xsetting of the variables, with the `reverse' effect in square
Xbrackets.
X.TP
X\-\fBa\fP\fIN\fP	{\fBset limit\fP \fIN\fP}
X.I Limit
Xthe maximum number of articles presented in each group to 
X.I N.
XThis is useful to get up-to-date quickly if you have not 
Xread news for a longer period.
X.TP
X\-\fBa0\fP
XMark 
X.I all
Xunread articles as read.  See the full explanation at the beginning of
Xthis manual.
X.TP
X\-\fBB\fP	{\fBtoggle backup\fP}
XDo not [do] backup the rc file.
X.TP
X\-\fBd\fP	{\fBtoggle split\fP}
XDo not [do] split digests into separate articles.
X.TP
X\-\fBf\fP	{\fBtoggle fsort\fP}
XDo not [do] sort folders according to the subject (present the
Xarticles in a folder in the sequence in which they were saved).
X.TP
X\-\fBg\fP
XPrompt for the name of a news group or folder to be entered
X.TP
X\-\fBI\fP
XDo not read the init file (must be the first option!!)
X.TP
X\-\fBk\fP	{\fBtoggle kill\fP}
XDo not [do] perform automatic kill and selection of articles.
X.TP
X\-\fBl\fP\fIN\fP	{\fBset stop\fP \fIN\fP}
XStop after printing the first \fIN\fP lines of each article.
XThis is useful on slow terminals.
X.TP
X\-\fBL\fP[\fIf\fP]	{\fBset layout\fP \fIf\fP}
XSelect alternative menu layout
X.IR f 
X(0 to 3).
XIf
X.I f
Xis omitted, menu layout 3 is selected.
X.TP
X\-\fBm\fP	{\fIno corresponding variable\fP}
XMerge all articles into one `meta group' instead of showing
Xthem one group at a time.  When -m is used, no articles will be marked
Xas read. 
X.TP
X\-\fBN\fP	{\fIno corresponding variable\fP}
XDisable updating of the rc file.  This includes not recording that
Xgroups have been read or unsubscribed to (although \fInn\fP will tell
Xyou so until you quit).  Intended for debugging purposes, but may be
Xused if you want to experiment with \fInn\fP without the risk of
Xlosing any articles.
X.TP
X\-\fBq\fP	{\fBtoggle sort\fP}
XDo not [do] sort the articles (q means quick, but it isn't
Xany quicker in practice!)
X.TP
X\-\fBQ\fP	{\fBtoggle silent\fP}
XQuiet mode - don't [do] print the logo or "No News" messages.
X.TP
X\-\fBs\fP\fIWORD\fP
XCollect only articles which contain the string
X.I WORD
Xin their subject (case is ignored).  If
X.I WORD
Xstarts with a slash `/', the rest of the argument is used as a
X\fIregular expression\fP instead of a fixed string.
X.TP
X\-\fBS\fP	{\fBtoggle repeat\fP}
XDo not [do] eliminate duplicated subject lines on menus.
X.TP
X\-\fBT\fP	{\fBtoggle time\fP}
XDo not [do] show the current time in the prompt line.
X.TP
X\-\fBw\fP[\fIN\fP]	{\fBset window\fP \fIN\fP}
XReserve \fIN\fP lines of the menu screen for a preview window.  If
X\fIN\fP is omitted, the preview window is set to 5 lines.
X.TP
X\-\fBW\fP	{\fBtoggle confirm\fP}
X[Don't] Wait for confirmation on all messages.
X.TP
X\-\fBx\fP[\fIN\fP]	{\fBset old N\fP}
XPresent (or scan) all (or the last \fIN\fP) unread as well as
Xread articles.  This will 
X.I never
Xmark unread articles as read.
X.SH KEY MAPPINGS
XThe descriptions of the keys and commands provided in this manual
Xreflects the default key mappings in \fInn\fP.  However, you can
Xeasily change these mappings to match your personal demands, and it is
Xalso possible to remap keys depending on the terminal in use.
XPermanent remapping of keys must be done through the
X.I init
Xfile, while temporary changes (for the duration of the current
Xinvocation of \fInn\fP) can be made with the
X.B :map
Xcommand.
X.LP
XThe binding and mapping of keys are controlled by four tables:
X.TP
X.B The multikey definition table
XThis table is used for mapping multicharacter key sequences into
Xsingle characters.  By default the table contains the mappings for the
Xfour cursor keys, and there is room for 10 user-defined multikeys.
XThe fourteen multikeys are named: 
X.BR up ,
X.BR down ,
X.BR right ,
X.BR left 
X(the four arrow keys), and
X.BR #0
Xthrough
X.BR #9
Xfor the user-defined keys.
X.sp 0.5v
XMultikey #\fIi\fP is defined using the following command:
X.sp 0.5v
X	\fBmap #\fP\fIi\fP \fIsequence\fP
X.sp 0.5v
Xwhere the 
X.I sequence
Xis a list of 7-bit character names (see below) separated by spaces.  
XFor example, if the HOME key sends the sequence ESC [ H, you can
Xdefine multikey #0 to be the home key using the command:
X.sp 0.5v
X	map #0 ^[ [ H
X.TP
X.B The input key mapping table
XAll characters that are read from the keyboard will be mapped through
Xthe input mapping table.  Consequently, you can globally remap one key
Xto produce any other key value.  By default all keys are mapped into
Xthemselves.
X.sp 0.5v
XAn entry in the input key mapping table to map \fIinput-key\fP into
X\fInew-key\fP is made with the command
X.sp 0.5v
X	\fBmap key\fP \fIinput-key\fP \fInew-key\fP
X.sp 0.5v
XFor example, to make your ESC key function as 
X.B interrupt
Xyou can use the command
X.sp 0.5v
X	map key ^[ ^G
X.TP
X.B The selection mode key binding table
XThis table defines for each key which command should be invoked when
Xthat key is pressed in selection mode, i.e. when the article menu is
Xshown.  The command to bind a
X.I key
Xto a
X.I command
Xin selection mode is:
X.sp 0.5v
X	\fBmap menu\fP \fIkey command\fP
X.sp 0.5v
XFor example, to have the HOME key defined as multikey #0 above bound
Xto the 
X.B select
Xcommand, the following command is used:
X.sp 0.5v
X	map menu #0 select
X.TP
X.B The reading mode key binding table
XThis table defines for each key which command should be invoked when
Xthat key is pressed in reading mode, i.e. when the article text is
Xshown.  The command to bind a
X.I key
Xto a
X.I command
Xin reading mode is:
X.sp 0.5v
X	\fBmap show\fP \fIkey command\fP
X.LP
XKeys and character names are specified using the following notation:
X.TP
X.I C
XA single printable character represents the key or character itself.
X.TP
X\fB^\fP\fIC\fP
XThis notation represents a control key or character.  
XDEL is written as \fB^?\fP
X.TP
X\fI125\fP, \fI0175\fP, \fI0x7D\fP
XCharacters and keys can be specified by their ordinal value in
Xdecimal, octal, and hexadecimal notation.
X.TP
X\fBup\fP, \fBdown\fP, \fBright\fP, \fBleft\fP
XThese names represent the cursor keys.
X.TP
X\fB#0\fP  through  \fB#9\fP
XThese symbols represent the ten user-defined multikeys.
X.LP
XTo show the current contents of the four tables, the following
Xversions of the 
X.B :show
Xcommand are available:
X.TP
X.B :show map #
XShow the multikey definition table.
X.TP
X.B :show map key
XShow the input key mapping table.
X.TP
X.B :show map menu
XShow the selection mode key bindings.
X.TP
X.B :show map show
XShow the reading mode key bindings.
X.LP
XBelow is a list of all the commands that can be bound to keys, either
Xin selection mode, in reading mode, or both.  For each command the
Xdefault command key bindings in both modes are shown.
XIf the key is not bound in one of the modes, but it can be bound, the
Xcorresponding part will just be empty.  If the command cannot be bound
Xin one of the modes, that mode will contain the word \fBnix\fP.
X.LP
X.in +8n
X.ta \w'select-subject'u+5m +\w'Selection mode'u+3m
X.br
X\fIFunction	Selection mode	Reading mode
X.br
X\fBadvance-group\fP	A 	A 
X.br
X\fBback-group\fP	B 	B 
X.br
X\fBcancel\fP	C 	C 
X.br
X\fBcommand\fP	:  	: 
X.br
X\fBcompress\fP	\fBnix\fP 	c 
X.br
X\fBcontinue\fP	\fBspace\fP 	\fBspace\fP 
X.br
X\fBfind\fP	\fBnix\fP 	/ 
X.br
X\fBfind-next\fP	\fBnix\fP 	. 
X.br
X\fBfollow\fP	F 	fF 
X.br
X\fBfull-digest\fP	\fBnix\fP 	H 
X.br
X\fBgoto-group\fP	G 	G 
X.br
X\fBgoto-menu\fP	\fBnix\fP 	= Z
X.br
X\fBhelp\fP	? 	? 
X.br
X\fBkill-select\fP	K 	K 
X.br
X\fBlayout\fP	L 	\fBnix\fP 
X.br
X\fBleave-article\fP	\fBnix\fP 	l 
X.br
X\fBline+1\fP	,  \fBdown\fP 	\fBreturn\fP
X.br
X\fBline-1\fP	/ 	\fBnix\fP 
X.br
X\fBline=@\fP	\fBnix\fP 	g 
X.br
X\fBmacro\fP \fIM\fP
X.br
X\fBmail\fP	M 	m M 
X.br
X\fBmessage\fP	^P 	^P 
X.br
X\fBnext-article\fP	\fBnix\fP 	n 
X.br
X\fBnext-group\fP	N 	N 
X.br
X\fBnext-subject\fP	\fBnix\fP 	k 
X.br
X\fBnil\fP		
X.br
X\fBoverview\fP	Y 	Y 
X.br
X\fBpage+1\fP	> 	\fBnix\fP
X.br
X\fBpage+1/2\fP	\fBnix\fP 	d 
X.br
X\fBpage-1\fP	< 	\fBdelete  backspace\fP 
X.br
X\fBpage-1/2\fP	\fBnix\fP 	u 
X.br
X\fBpage=0\fP	\fBnix\fP 	h 
X.br
X\fBpage=1\fP	^ 	^ 
X.br
X\fBpage=$\fP	$ 	$ 
X.br
X\fBpost\fP		
X.br
X\fBpreview\fP	% 	% 
X.br
X\fBprevious\fP	P 	p 
X.br
X\fBprint\fP		P 
X.br
X\fBquit\fP	Q 	Q 
X.br
X\fBread-return\fP	Z 	\fBnix\fP 
X.br
X\fBread-skip\fP	X 	X 
X.br
X\fBredraw\fP	^L ^R 	^L ^R 
X.br
X\fBreply\fP	R 	r R 
X.br
X\fBrot13\fP	\fBnix\fP 	D 
X.br
X\fBsave-body\fP	W 	w W 
X.br
X\fBsave-full\fP	S 	s S 
X.br
X\fBsave-short\fP	O 	o O 
X.br
X\fBselect\fP	. 	\fBnix\fP 
X.br
X\fBselect-auto\fP	+ 	\fBnix\fP 
X.br
X\fBselect-invert\fP	@ 	\fBnix\fP 
X.br
X\fBselect-range\fP	- 	\fBnix\fP 
X.br
X\fBselect-subject\fP	* 	* 
X.br
X\fBshell\fP	! 	! 
X.br
X\fBunselect-all\fP	~ 	\fBnix\fP 
X.br
X\fBunshar\fP		
X.br
X\fBunsub\fP	U 	U 
X.br
X\fBversion\fP	V 	V 
X.in -8n
X.DT
X.LP
XSee the descriptions of the default bindings for a description of the
Xcommands.  The pseudo command
X.B nil
Xis used to
X.I unbind
Xa key.
X.SH MACRO DEFINITIONS
XPractically any combination of commands and key strokes can be defined
Xas a macro which can be bound to a single key in menu and/or reading mode.
X.LP
XThe macro definition must specify a sequence of commands and key
Xstrokes as if they were typed directly from the keyboard.  For
Xexample, a string specifying a file name must follow a save command.
XThis manual does not give a complete specification of all the input
Xrequired by the various commands; it is recommended to execute the
Xdesired command sequence from the keyboard prior to defining the macro
Xto get the exact requirements of each command.
X.LP
XAlthough it is possible to define temporary macros interactively using the 
X.B :define
Xcommand, macro definitions are normally placed in the 
X.I init
Xfile.  Macros are numbered from 0 to 31, i.e. it is possible to define
NO_NEWS_IS_GOOD_NEWS
echo "End of part 9"
echo "File nn.1 is continued in part 10"
echo "10" > s2_seq_.tmp
exit 0
---
Kim F. Storm        storm@texas.dk        Tel +45 429 174 00
Texas Instruments, Marielundvej 46E, DK-2730 Herlev, Denmark
	  No news is good news, but nn is better!

-- 
Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.
Use a domain-based address or give alternate paths, or you may lose out.