NAME

     nn - efficient net news interface (No News is good news)


SYNOPSIS

     nn [ options ] [ newsgroup  |  +folder  |  file ]...
     nn -g [ -r ]
     nn -a0 [ newsgroup ]...


DESCRIPTION

     Net news is a world-wide information exchange service cover-
     ing  numerous  topics in science and every day life.  Topics
     are organized in news groups, and these groups are open  for
     everybody to post articles on a subject related to the topic
     of the group.

     Nn is a `point-and-shoot' net news interface program,  or  a
     news  reader  for  short  (not to be confused with the human
     news reader).  When you use nn, you can decide which of  the
     many  news  groups you are interested in, and you can unsub-
     scribe to those which don't interest you.  nn will  let  you
     read  the  new  (and old) articles in each of the groups you
     subscribe to using a menu based article selection  prior  to
     reading the articles in the news group.

     When a news  group  is  entered,  nn  will  locate  all  the
     presently  unread  articles  in the group, and extract their
     sender,  subject,  and  other  relevant  information.   This
     information  is then rearranged, sorted, and marked in vari-
     ous ways to give it a pleasant format when it  is  presented
     on the screen.

     This will be done very quickly,  because  nn  uses  its  own
     database  to  maintain  all  the  necessary information on a
     directly accessible form (this database is built  and  main-
     tained by the nnmaster(8) program).

     When the article menu appears on the screen, nn will be in a
     mode  called  selection  mode.   In  this mode, the articles
     which seems to be interesting  can  be  selected  by  single
     keystrokes  (using  the  keys  a-z  and  0-9).  When all the
     interesting articles among the ones presently displayed have
     been  selected,  the  space  bar  is hit, which causes nn to
     enter reading mode.

     In reading mode, each  of  the  selected  articles  will  be
     presented.   You use the space bar to go on to the next page
     of the current article, or to the next article.  Of  course,
     there  are all sorts of commands to scroll text up and down,
     skip to the next article, responding to an article,  decrypt
     an article, and so on.


     When all the selected articles in  the  current  group  have
     been  read, the last hit on the space bar will cause nn will
     continue to the next group with unread articles,  and  enter
     selection mode on that group.


FREQUENTLY USED OPTIONS

     nn accepts a lot of command line options, but here only  the
     frequently  used options are described.  Options can also be
     set permanently by including appropriate  variable  settings
     in the init file described later.  All options are described
     in the section on Command Line Options towards  the  end  of
     this manual.

     The frequently used command line options are:

     -a0   Catch up on unread articles and groups.  See the  sec-
          tion "Catch up" below.

     -g    Prompt for the name of a news group or  folder  to  be
          entered (with completion).

     -r    Used with -g to repeatedly prompt for groups to enter.

     -lN   Print only the first N lines of the first page of each
          article  before  prompting to continue.  This is useful
          on slow terminals and modem lines to be able to see the
          first few lines of longer articles.

     -sWORD
          Collect only articles which contain the string WORD  in
          their subject (case is ignored).  This is normally com-
          bined with the -x and -m options to find  all  articles
          on a specific subject.

     -s/regexp
          Collect only articles whose subject matches the regular
          expression  regexp.  This is normally combined with the
          -x and -m options to find all articles  on  a  specific
          subject.

     -nWORD or -n/regexp
          Same as -s except that it matches on the sender's  name
          instead  of  the  article's  subject.  This is normally
          combined with the -x and -m options to find  all  arti-
          cles  from  a specific author.  It cannot be mixed with
          the -s option!

     -i    Normally searches with -n and -s are case independent.
          Using this option, the case becomes significant.

     -m    Merge all articles into one `meta  group'  instead  of
          showing  them  one  group  at a time.  This is normally
          used together with the -x and -s options to get all the
          articles  on  a  specific subject presented on a single
          menu (when you don't care about which group they belong
          to).   When  -m  is used, no articles will be marked as
          read.

     -x[N]
          Present (or scan) all (or the last N) unread as well as
          read articles.  When this option is used, nn will never
          mark unread articles  as  read  (i.e.  .newsrc  is  not
          updated).

     -X    Read/scan unsubscribed groups also.  Most useful  when
          looking for a specific subject in all groups, e.g.
               nn -mxX -sSubject all

     news.group  or  file  or  +folder
          If none of these arguments are  given,  all  subscribed
          news  groups  will be used.  Otherwise, only the speci-
          fied news groups and/or files  will  be  collected  and
          presented.   In specifying a news groups, the following
          `meta notation' can be used:
          If the news group ends with a `.' (or `.all'), all sub-
          groups of the news group will be collected, e.g.
               comp.sources.
          If a news group starts with a `.' (or `all.'), all  the
          matching subgroups will be collected, e.g.
               .sources.unix
          The argument `all'  identifies  all  (subscribed)  news
          groups.


COMMAND INPUT

     In general, nn commands consist of one or  two  key-strokes,
     and  nn  reacts  instantly  to the commands you give it; you
     don't have to enter return after each command (except  where
     explicitly stated).

     Some commands have more serious  effects  than  others,  and
     therefore  nn requests you to confirm the command.  You con-
     firm by hitting the the y key, and reject by hitting  the  n
     key.   Some  `trivial' requests may also be confirmed simply
     by hitting space. For example, to confirm the creation of  a
     save  file,  just  hit space, but if one or more directories
     also have to be created, you must enter y.

     Many commands will require that you enter a  line  of  text,
     e.g.  a file name or a shell command.  If you enter space as
     the first character on a line, the line will be filled  with
     a  default  value  (if  one  is  defined).  For example, the
     default value for a file name is the last file name you have
     entered,  and  the  default  shell  command is your previous
     shell command.  You can edit this default value as well as a
     directly  typed  text, using the following editing commands.
     The erase, kill, and interrupt keys are the keys defined  by
     the  current  tty settings.  On systems without job control,
     the suspend key will be control-Z while it  is  the  current
     suspend character on system with job control.

     erase
          Delete the last character on the line.

     delete-word   (normally ^W)
          Delete the last word or component of the input.

     kill
          Delete all characters on the line.

     interrupt  and  control-G
          Cancel the command which needs the input.

     suspend
          Suspend nn if  supported  by  the  system.   Otherwise,
          spawn an interactive shell.

     return
          Terminate the line, and continue with the command.

     Related   variables:    erase-key,   flow-control,    flush-
     typeahead, help-key, kill-key, word-key.


BASIC COMMANDS

     There are numerous commands in nn, and most of them  can  be
     invoked  by  a  single  keystroke.  The descriptions in this
     manual are based on the standard bindings of the commands to
     the  keys,  but  it is possible to customize these using the
     map command described later.  For each of the keystroke com-
     mands  described  in  this manual, the corresponding command
     name will also be shown in curly braces, e.g. {command}.

     The following commands work in both selection  mode  and  in
     reading mode.  The notation ^X means `control X':

     ?    {help}
          Help.  Gives a one page overview of the commands avail-
          able in the current mode.

     ^L   {redraw}
          Redraw screen.

     ^R   {redraw}
          Redraw screen (Same as ^L).

     ^P   {message}
          Repeat the last message shown on the message line.  The
          command  can  be repeated to successively show previous
          messages (the maximum number of saved messages is  con-
          trolled via the message-history variable.)

     !    {shell}
          Shell escape.  The user is prompted for a command which
          is executed by your favorite shell (see the shell vari-
          able).  Shell escapes are described in detail later on.

     Q    {quit}
          Quit nn.  When you use this command, you  neither  lose
          unread articles in the current group nor the selections
          you might have made (unless the articles are expired in
          the meantime of course).

     V    {version}
          Print release and version information.

     :command  {command}
          Execute the command by name.  This form can be used  to
          invoke any of nn's commands, also those which cannot be
          bound to a key (such as :coredump), or those which  are
          not  bound  to  a  key  by  default  (such  as post and
          unshar).

     Related  and  basic   variables:    backup,   backup-suffix,
     confirm-auto-quit,   expert,   mail,  message-history,  new-
     group-action, newsrc, quick-count.


SELECTION MODE

     In selection mode, the screen is divided  into  four  parts:
     the  header  line showing the name of the news group and the
     number of articles, the menu lines which show the  collected
     articles  -  one article per line, the prompt line where you
     enter commands, and the message line where nn prints various
     messages to you.

     Each menu line begins with an article id which is  a  unique
     letter  (or  digit if your screen can show more than 26 menu
     lines).  To select an articles for reading, you simply enter
     the corresponding id, and the menu line will be high-lighted
     to indicate that the article is  selected.   When  you  have
     selected  all  the interesting articles on the present menu,
     you simply hit space.

     If there are more articles collected for the  current  group
     than  could  be presented on one screenful of text, you will
     be presented with the next portion  of  articles  to  select
     from.  When you have had the opportunity to select among all
     the articles in the group, hitting space will enter  reading
     mode.

     If no articles have been selected in the current group, hit-
     ting space will enter selection mode on the next news group,
     or exit nn if the current group was the last news group with
     unread  articles.  It  is  thus  possible  to go through ALL
     unread articles (without reading any of them) just  by  hit-
     ting space a few times.

     The articles will be presented on the menu using one of  the
     following layouts:
9
     0:   x Name.........  Subject.............. +123

     1:   x Name.........   123  Subject..............

     2:   x 123  Subject...................................

     3:   x Subject...........................................

     4:   x    Subject........................................

     Here x is the letter or digit that must be entered to select
     the  article,  Name  is  the real name of the sender (or the
     mail address if the real name cannot be found),  Subject  is
     the  contents of the "Subject:" line in the article, and 123
     is the number of lines in the article.

     Layout 0 and 1 are just two ways to present the same  infor-
     mation,  while  layout 2 and 3 are intended for groups whose
     articles have very long subject lines, e.g. comp.sources.

     Layout 4 is a hybrid between layout 1 and 3.  It  will  nor-
     mally  use layout 1, but it will use layout 3 (with a little
     indentation) for menu lines where the subject is longer than
     the space available with layout 1.

     Layout 1 is the default layout, and an alternative menu line
     layout  is  selected  using  the -L option or by setting the
     layout variable.  Once nn  is  started  the  layout  can  be
     changed at any time using the " key {layout}.

     The Name is limited to 16 characters, and  to  make  maximum
     use  of  this space, nn will perform a series of simplifica-
     tions on the name, e.g. changing first names into  initials,
     removing  domain names from mail addresses (if the real name
     is not found) etc.  It does a good job, but some  people  on
     the  net put weird things into the From:  field (or actually
     into their password file) which result in nn producing quite
     cryptic, and sometimes funny "names".

     One a usual 80 column terminal, the Subject  is  limited  to
     about  60  characters  (75  in layout 3) and is thus only an
     approximation to the actual subject line which may  be  much
     various forms) are recognized and replaced by a  single  `>'
     character (see the re-layout variable).

     Since articles are sorted according to the subject,  two  or
     more  adjacent articles may share the same subject (ignoring
     any `>'s).  In this case, only the first article  will  show
     the  subject of the article; the rest will only show the `>'
     character in the subject field (or a `-' if there is no  `>'
     at  the  beginning  of  the line).  A typical menu will thus
     only show each subject once, saving a lot of time  in  scan-
     ning the news articles.

     If consolidated menus (see section below) are enabled, adja-
     cent  articles sharing the same subject will be shown with a
     single line on the menu corresponding to the  first  of  the
     articles.  The number of articles with the same subject will
     be shown as a braketed number in front of the subject,  e.g.
     with layout 1:
          x Name.........   123  [4] Subject..............
     For further information  see  the  section  on  consolidated
     menus below.

     Related  variables:   collapse-subject,  columns,   confirm-
     entry, confirm-entry-limit, entry-report-limit, fsort, kill,
     layout, limit, lines, long-menu,  re-layout,  repeat,  slow-
     mode,  sort, sort-mode, split, subject-match-limit, subject-
     match-offset, subject-match-parts, subject-match-minimum.


ARTICLE ATTRIBUTES

     While nn is running and between invocations,  nn  associates
     an attribute with each article on your system.  These attri-
     butes are used to  differentiate  between  read  and  unread
     articles,  selected  articles,  articles  marked  for  later
     treatment, etc.  Depending on how nn  is  configured,  these
     attributes  can  be saved between invocations of nn, or some
     of them may only be used while nn is running.

     The attribute is shown on the menu  using  either  a  single
     character  following  the article id or by high-lighting the
     menu line, depending on the attribute and  the  capabilities
     of the terminal.  You can also change the attributes to your
     own taste (see the attributes variable).

     The attribute of an article can be changed explicitly  using
     the  selection  mode  commands  described  below, or it will
     change automatically for example when you have read or saved
     a  selected  article.   If  a command may change any article
     attributes, it will be noted in the description of the  com-
     mand.   The  following  descriptions  of the attributes will
     only mention the most important commands that  may  set  (or
     preserve) the attribute.


     read Menu attribute "." - indicates  that  the  article  has
          been  read  or  saved.  When you leave the group, these
          articles will be marked permanently read, and  are  not
          presented the next time you enter the group.

     seen Menu attribute "," -  indicates  that  the  article  is
          unread,  but  that  it  has  been  presented on a menu.
          Depending on how nn is configured, these articles  will
          automatically  be marked read when you leave the group,
          they may remain seen, or they may just  be  unread  the
          next  time you enter the group (see the auto-junk-seen,
          confirm-junk-seen, and retain-seen-status variables).

9 Only the commands continue (space) and read-skip (X)

          will  mark unread articles on the current (or all) menu
          pages as seen when they are used.  Other commands  that
          scroll  through  the  menu  pages or enter reading mode
          will let unread articles remain unread.

     unread
          Menu attribute "  "  -  indicates  an  unread  article.
          These  articles were unread when you entered the group,
          and they may remain unread when you  leave  the  group,
          unless  they  have been marked seen by the command that
          you used to leave the group or enter reading mode.

     selected
          Menu line high-lighted (or menu attribute "*") -  indi-
          cates that you have selected the article.  If you leave
          the group, the selected articles will  remain  selected
          the  next time you enter the group.  When you have read
          a selected article, the  attribute  will  automatically
          change to read.

     auto-selected
          These articles have the  same  appearance  as  selected
          articles  on  the menu, and the only difference is that
          these articles have been selected automatically via the
          auto-selection  facility  rather  than manually by you.
          Very few commands differentiate  between  these  attri-
          butes  and  if they do, it is explicitly stated in this
          manual.  The main difference is that these articles are
          only marked as unread when you leave the group (suppos-
          ing they will also be auto-selected the next the  group
          is entered).  This simplifies the house-keeping between
          invocations of nn.

     leave
          Menu attribute "+" -  indicates  that  the  article  is
          marked  for  later  treatment  by the leave-article (l)
          command.  These articles may be  selected  (on  demand)

          they  are  stored as the leave-next attribute described
          below.

     leave-next
          Menu attribute "=" -  indicates  that  the  article  is
          marked  for  later treatment by the leave-next (L) com-
          mand.  This is a permanent attribute, which will remain
          on  the  article  until  you  either  read the article,
          change the attribute, or it is expired.   So  assinging
          this  attribute  to an article will effectively keep it
          unread  until  you  do  something.   If  the   variable
          select-leave-next  is  set,  nn  will ask whether these
          articles should be selected on entry to  a  group  (but
          naturally,  doing  so will change the leave-next attri-
          bute to select).

     cancelled
          Menu attribute "#" - indicates  that  the  article  has
          been  cancelled.   This is mainly useful when tidying a
          folder; it is set by the cancel (C) command, and can be
          cleared by any command that change attributes, e.g. you
          can select and deselect the article.

     killed
          Menu attribute "!" - indicates  that  the  article  has
          been  killed  (e.g.   by  the K {kill-select} command).
          Killed articles are immediately removed from the  menu,
          so  you  should  not  normally  see  articles with this
          attribute.  If you do, report it as a bug!

     The attributes are saved in two files: .newsrc  (read  arti-
     cles) and .nn/select (other attributes).  Plain unread arti-
     cles are saved by not occurring in either  of  these  files.
     Both files are described in more detail later on.

     Related  variables:   attributes,  auto-junk-seen,  confirm-
     junk-seen, retain-seen-status, select-leave-next.


SELECTION MODE COMMANDS

     The primary purpose of the selection mode is  of  course  to
     select  the articles to be read, but numerous other commands
     may also be performed in this mode: saving  of  articles  in
     files,    replying    and    following   up   on   articles,
     mailing/forwarding articles, shell escapes etc.

     As described above, the selected articles are marked  either
     by  showing  the  corresponding  menu  line in standout mode
     (reverse video), or if the terminal does not have this capa-
     bility by placing an asterisk (*) after the selection letter
     or digit.


     the selectedattribute on the article(s), independent on  the
     previous  attribute.   Otherwise,  the  article(s)  will  be
     deselected and marked unread.  Consequently, any article can
     be marked unread simply be selecting and deselecting it.

     During selection, the cursor will normally be placed on  the
     article  following  the  last  article  whose  attribute was
     changed (initially the first article).  The article  pointed
     out  by  the  cursor  is called the current article, and the
     following commands work relative to the current article  and
     cursor position.

     abc...z 01..9  {article N}
          The article with the  given  identification  letter  or
          digit is selected or deselected.  The following article
          becomes the current article.   If  the  variable  auto-
          select-subject  is set, all articles with the same sub-
          ject as the given article are selected.

     .    {select}
          Select or deselect the current  article  and  move  the
          cursor to the next article.

     ,    {line+1}
          Move the cursor to the next article.  You can  use  the
          down arrow as well.

     /    {line-1}
          Move cursor to previous article.  You can  use  the  up
          arrow as well.

     *    {select-subject}
          Select or deselect all articles with  same  subject  as
          current  article.   This  will work across several menu
          pages if necessary.

     -x   {select-range}
          Select or deselect the range of  articles  between  the
          current  article  and  the article specified by x.  For
          example you can select all articles from e to k by sim-
          ply typing e-k.

     The following commands may  change  the  attributes  on  all
     articles on the current menu page, or on all articles on all
     menu pages.

     @    {select-invert}
          Reverse  selections.   All  selected  articles  on  the
          current  page are deselected, and vice-versa.  (Use the
          find command to select all articles.)


          works  across  all menu pages).  If the command is exe-
          cuted  twice,  the  selected  articles  will  also   be
          deselected.

     +    {select-auto}
          Perform auto-selections in the group (see  the  section
          on "auto kill/select" below).

     =    {find}
          Prompts for a regular expression, and selects all arti-
          cles  on the menu (all pages) which matches the regular
          expression.  Depending on the variable select-on-sender
          matching  is performed against the subject (default) or
          the sender of the articles.  An empty answer (= return)
          will reuse the previous expression.  Example:  The com-
          mand = . return will select all articles in the group.

     J    {junk-articles}
          This is a very versatile command which can be  used  to
          perform all sorts of attribute changes, either on indi-
          vidual articles, all articles on the current menu page,
          all  articles  with a specific attribute, or all avail-
          able articles.  To access all  the  functions  of  this
          command, the J key may have to be hit up to four times,
          to loop through different  one-line  menus.   The  full
          functionality of the junk-articles command is described
          in a separate section below.

     L    {leave-next}
          This is a specialized version of the generic  J  {junk-
          articles}  command to set the leave-next attribute on a
          subset of  the  articles  on  the  menu.   It  is  also
          described further below.

     The following commands move between the pages  belonging  to
     the  same  news group when there are more articles than will
     fit on a single page.  These commands will  not  change  any
     article attributes.

     >    {page+1}
          Goto next menu page.

     <    {page-1}
          Goto previous menu page, or to last  menu  page  if  on
          first menu page.

     $    {page=$}
          Goto last menu page.

     ^    {page=1}


     The following commands are used to enter  reading  mode  for
     the  selected  articles, and to move between news groups (in
     selection mode).  They  may  change  article  attributes  if
     noted below.

     space     {continue}
          Continue to next menu page, or if on  last  menu  page,
          read  the  selected articles.  If no articles have been
          selected, continue to the next news group.  The  unread
          articles on the current menu page will automatically be
          marked seen.

     return    {continue-no-mark}
          Identical to the  continue  command,  except  that  the
          unread  articles  on  the current menu page will remain
          unread.  (The newline key has the same effect).

     Z    {read-return}
          Enter  reading  mode  immediately  with  the  currently
          selected  articles.   When all articles have been read,
          return to selection mode in the current group.  It will
          mark  selected  articles  read  as  they  are read, but
          unread articles are not normally changed (can  be  con-
          trolled with the variable marked-by-read-return.)

     X    {read-skip}
          Mark all unmarked articles seen on all menu  pages  (or
          the pages defined by the marked-by-read-skip variable),
          and enter reading mode immediately with  the  currently
          selected  articles.  As the selected articles are read,
          they are marked read.  When all selected articles  have
          been  read,  nn  will  enter selection mode in the next
          news group.  When no articles  are  selected,  it  goes
          directly  to  the next group.  This can be used to skip
          all the articles in a large news group  without  having
          to go through all the menu pages.

     If you don't want to read the current group now, but want to
     keep  it for later, you can use the following commands which
     will only mark seen and read articles  as  read.   Currently
     selected  articles  will still be selected the next time you
     enter the group.  None of these  commands  will  change  any
     attributes themselves (by default).

     N    {next-group}
          Go forward  to  the  next  group  in  the  presentation
          sequence.   If the variable marked-by-next-group is set
          articles on the menu can optionally be marked seen

     P    {previous}


          in sequence will bring you to the current  group).   If
          there are still some unread articles in the group, only
          those articles will be shown.  Otherwise, all the arti-
          cles  which  were  unread  when  nn was invoked will be
          shown marked with the  read  attribute  (which  can  be
          changed as usual).

     As described in the "Article Attributes" section,  the  read
     and  seen  articles  will  normally  be marked read when you
     leave the group, and these articles are not shown  the  next
     time you enter the group.

     In all releases prior to release 6.4, it was  impossible  to
     have  individual  articles in a group marked unread when you
     left a group, and  the  default  behaviour  of  release  6.4
     onwards  will closely match the traditional behaviour.  This
     means that the seen and read articles are treated alike  for
     most practical purposes with the default variable settings.

     If you don't like nn to  silently  mark  the  seen  articles
     read,  you  can set the variable confirm-junk-seen to get nn
     to prompt you for confirmation before doing this, or you can
     unset  the  variable  auto-junk-seen to simply keep the seen
     articles for the next time you enter the  group.   You  then
     have to use the J {junk-articles} to mark articles read.

     Using return {continue-no-mark} will also allow you to  keep
     articles unread rather than marking them seen when scrolling
     through the menu pages and entering reading mode.   If  this
     is your preferred reading style, you can remap space to this
     command.

     Related   variables:    auto-junk-seen,   auto-preview-mode,
     auto-select-subject,   case-fold-search,  confirm-auto-quit,
     confirm-entry,   confirm-junk-seen,    marked-by-next-group,
     marked-by-read-return,   marked-by-read-skip,   retain-seen-
     status, select-on-sender.


CONSOLIDATED MENUS

     Normally, nn will use one menu line for each article, so  if
     there  are  many articles with identical subjects, each menu
     page will only contain a few different  subjects.   To  have
     each  subject  occur  only  once on the menu, nn can operate
     with   consolidated   menus   by   setting   the    variable
     consolidated-menu.

     When consolidated menus are used, nn operates with two kinds
     of subjects: open and closed.




     given subject.  In other words, when consolidated menus  are
     not used, all subjects are open (by default).

     A  closed  subject  is  a  multi-article  subject  which  is
     presented by a single menu line.  This line will be the nor-
     mal menu line for the first (oldest) article with  the  sub-
     ject,  but with the subject field annotated with a bracketed
     number showing the number of  articles  with  that  subject,
     e.g.
9          a Kim F. Storm     12  [4] Future plans for nn
          b.Kim F. Storm     43  [3] More plans for nn
9     In this example, there are four unread articles with subject
     `a'  of  which  the  first is posted by me and has 12 lines.
     The rest of the articles are hidden, and will only be  shown
     on  request.   The `.'  marker on subject `b' shows that all
     three articles within that subject have been read (or seen).

     To select (or deselect) ALL the  articles  within  a  closed
     subject,  simply  select the article shown on the menu; this
     will automatically select (or deselect) the rest (see  auto-
     select-closed).   When  all  the  unread  articles  within a
     closed subject are selected, the menu  line  will  be  high-
     lighted.

     If you want to view the individual  articles  in  a  subject
     (maybe to select individual articles), you can open the sub-
     ject with the commands:

     (x   Open subject x on menu.

     ((   Open current subject.

     When you have completed viewing the opened subject, you  can
     close it again using the commands:

     )x   Close subject x on menu (x is any article with the sub-
          ject).

     ))   Close current subject.

     In the basic layout of the menu line for a closed subject as
     shown above, ALL articles in the closed subject are supposed
     to be either:

     unread
          The menu line is not high-lighted.

     selected
          Menu line is fully  high-lighted  (if  all  UNREAD  are



          There is a `.' (read attribute) following  the  article
          id.

     If neither of these cases apply, i.e. there is a mixture  of
     unread,  selected,  and  seen/read  articles,  the bracketed
     number will have one of the following formats:

     [U:T]
          There are U unread articles of T total (U<T).

     [S/T]
          There are S selected articles of T total (S<U=T).

     [S/U:T]
          There are S selected of U unread of T total (S<UNotice:  Consolidated menus only work with the `subject' and
     `lexical' sorting methods.

     Variables related to consolidated menus  are:   auto-select-
     closed,   consolidated-menu,   counter-delim-left,  counter-
     delim-right, counter-padding, save-closed-mode.


THE JUNK-ARTICLES AND LEAVE-NEXT COMMANDS

     The J {junk-articles} command is  a  very  flexible  command
     which  can perform all sorts of attribute changes, either on
     individual articles, all articles on the current menu  page,
     all  articles  with  a  specific attribute, or all available
     articles.

     To access all the functions of this command, the J  key  may
     have  to  be hit up to four times, to loop through different
     one-line menus:

     Mark Read
          This submenu allows you to mark articles read.

     Unmark
          This submenu allows you to mark articles unread.

     Select
          This submenu allows you to  select  articles  based  on
          their attribute.

     Kill This submenu allows  you  to  mark  articles  read  and



     with a fifth menu:

     Leave
          This menu allows you to mark articles  for  later  han-
          dling with the leave-next attribute which will keep the
          article unread until you explicitly change  the  attri-
          bute (e.g. by reading it) or it is expired.

     For each of these submenus, nn will list the most  plausible
     choices you may use, but all of the following answers can be
     used at all submenus.  When you have entered  a  choice,  nn
     will  afterward ask whether the change should be made to all
     menu pages or only the current page.

     J    Show next submenu.

     L    Change attribute on all leave articles.

     N    Change attribute on all leave-next articles.

     R    Change attribute on all read articles.

     S    Change attribute on all seen articles.

     U    Change attribute on all unmarked  (i.e.  unread)  arti-
          cles.

     A    Change  attribute  on  all  articles  no  matter  their
          current attribute.

     *    Change  attribute  on  all  selected  articles  on  the
          current page.

     +    Change attribute on all selected articles on all pages.

     a-z0-9
          Change attribute on one or more  specific  articles  on
          the  current  page.   You end the list of articles by a
          space or by using one of the  other  choices  described
          above.

     Change attribute on current article.

     , /  Move the current article down or up  the  menu  without
          changing any attributes.


READING MODE COMMANDS

     In reading mode, the selected  articles  are  presented  one
     page  at a time.  To get the next page of an article, simply



     going  back  to  the menu, quitting nn, etc. will retain the
     attribute on the current article.

     When you are on the last page of the last article, hit space
     to  enter  selection  mode on the next group (or the current
     group if reading mode was entered using the Z command).

     To read an article, the following  text  scrolling  commands
     are available:

     space     {continue}
          Scroll one page forward or continue with the next arti-
          cle or group as described above.

     backspace / delete  {page-1}
          Go one page backwards in article.

     d    {page+1/2}
          Scroll one half page forward.

     u    {page-1/2}
          Go one half page backwards.

     return    {line+1}
          Scroll one line forward in the article.

     tab  {skip-lines}
          Skip over lines starting with the same character as the
          last  line on the current page.  This is useful to skip
          over included text or to  the  next  file  in  a  shell
          archive.

     ^    {page=1}
          Move to the first page (excluding the  header)  of  the
          article.

     $    {page=$}
          Move to the last page of the article.

     gN   {line=@}
          Move to line N in the article.

     /regexp   {find}
          Search forward for text matching the regular expression
          regexp in the article.  If a matching text is found, it
          will be high-lighted.

     .    {find-next}
          Repeat search for last regular expression.




     H    {full-digest}
          If the current article is extracted from a digest, show
          the   entire   digest  article  including  its  header.
          Another H command will return to the  current  subarti-
          cle.

     D    {rot13}
          Turn rot13 (caesar)  decryption  on  and  off  for  the
          current article, and redraw current page.  If the arti-
          cle is saved while it is decrypted on  the  screen,  it
          will be saved in decrypted form as well!

     c    {compress}
          Turn compression on and off for the current article and
          redraw  current page.  With compression turned on, mul-
          tiple spaces and tabs are  shown  as  a  single  space.
          This  makes it much easier to read right justified text
          which separate words with several  spaces.   (See  also
          the compress variable)

     The following commands are used to move among  the  selected
     articles.

     n    {next-article}
          Move to next selected article.  This command skips  the
          rest  of  the current article, marks it read, and jumps
          directly to the first page of the next selected article
          (or to the next group if it was the last selected arti-
          cle).

     l    {leave-article}
          Mark the current article with the leave  attribute  and
          continue  with the next selected article.  When all the
          selected articles in the current group have been  read,
          these  left over articles can be automatically selected
          and shown once more, or the treatment can be  postponed
          to the next time you enter the group.
            This is particularly useful if  you  see  an  article
          which you may want to respond to unless one the follow-
          ing articles is already saying  what  you  intended  to
          say.

     L    {leave-next}
          Mark the current article with the leave-next  attribute
          and continue with the next selected article.

     p    {previous}
          Goto previous article.



          articles are marked  read.   To  kill  a  subject  per-
          manently use the K command.

     *    {select-subject}
          Show next article with same subject (even if it is  not
          selected).   This  command  will  select  all following
          articles with the same subject as the  current  article
          (similar  to  the `*' command in selection mode).  This
          can be used to select only the first article on a  sub-
          ject  in selection mode, and then select all follow-ups
          in reading mode if you find the article interesting.

     a    {advance-article}
          Goto the following article on the menu even  if  it  is
          not  selected.   This  command  skips  the  rest of the
          current article and jumps directly to the first page of
          the next article (it will not skip to the next group if
          it is the last article).  The attribute on the  current
          article  will be restored, except for the unread attri-
          bute which will be changed to seen.

     b    {back-article}
          Goto the article before current  article  on  the  menu
          even  if  it is not selected.  This is similar to the a
          command, except for the direction.

     The following commands  perform  an  immediate  return  from
     reading  mode to selection mode in the current group or skip
     to the next group.

     =    {goto-menu}
          Return to selection mode in the current group (think of
          =  as  the "icon" of the selection menu).  The articles
          read so far will be marked read.

     N    {next-group}
          Skip the rest of the selected and  unread  articles  in
          the  current  group  and go directly to the next group.
          Only the read (and seen) articles in the current  group
          are marked as read.

     X    {read-skip}
          Mark all articles in the current group as read  and  go
          directly to the next group.  (You will be asked to con-
          firm this command.)

     Related  variables:   case-fold-search,  charset,  compress,
     data-bits,  date, header-lines, mark-overlap, monitor, over-
     lap, scroll-clear-page,  stop,  trusted-escape-codes,  wrap-



     In selection mode, it is possible to read a specific article
     on  the  menu  without  entering  reading  mode  for all the
     selected articles on the menu.  Using the commands described
     below will enter reading mode for one article only, and then
     return to the menu mode immediately after (depending on  the
     setting of the preview-continuation variable).

     If there are more than 5 free lines at  the  bottom  of  the
     menu  screen,  nn will use that space to show the article (a
     minimal preview window can be permanently allocated with the
     window  variable).  Otherwise, the screen will be cleared to
     show the article.

     After previewing an article, it will be marked read (if  the
     preview-mark-read  variable is set), and the following arti-
     cle will become the current article.

     %x   {preview}
          Preview article x.

     %%   {preview}
          Preview the current article.

     When the article is being shown, the following reading  mode
     commands are very useful:

     =    {goto-menu}
          Skip the rest of the current  article,  and  return  to
          menu mode.

     n    {next-article}
          Skip the rest of the current article, and  preview  the
          next article.

     l    {leave-article}
          Mark the article as selected (!) on the menu  for  han-
          dling  later  on.   Then  skip  the rest of the current
          article, and preview the next article.

     %y   {preview}
          Preview article y .

     If the variable auto-preview-mode is set, just  hitting  the
     article  id  in  menu  mode  will  enter preview mode on the
     specified article.

     Related variables:  auto-preview-mode, min-window,  preview-
     continuation, preview-mark-read, window.




     use the commands in both reading mode to  save  the  current
     article  and  in selection mode to save one or more articles
     on the menu.

     The saved articles will be appended to the specified file(s)
     followed  by an empty line each.  Both files and directories
     will be created as needed.  When an article has  been  saved
     in  a  file,  a  message reporting the number of lines saved
     will be shown if the save-report variable  is  set  (default
     on).

     S    {save-full}
          Save articles including the full article header.

     O    {save-short}
          Save articles with a short header containing  only  the
          name  of  the sender, the subject, and the posting date
          of the article.

     W    {save-body}
          Write article without a header.

     :print    {print}
          Print article.  Instead of a file  name,  this  command
          will  prompt for the print command to which the current
          article will be piped.  The default  print  command  is
          specified  at  compile  time,  but it can be changed by
          setting the  printer  variable.   The  output  will  be
          identical to that of the O command.

     :patch    {patch}
          Send articles through patch(1) (or the program  defined
          in  the  patch-command  variable).   Instead  of a file
          name, you will be prompted for the name of a  directory
          in which you want the patch command to be executed.  nn
          will then pipe the body  of  the  article  through  the
          patch command.
            The output from the patch process will  be  shown  on
          the   screen   and   also  appended  to  a  file  named
          Patch.Result in the patch directory.

     :unshar   {unshar}
          Unshar articles.  You will be prompted for the name  of
          a  directory  in  which you want nn to unshar the arti-
          cles.  nn will then pipe the proper parts of the  arti-
          cle  body  into  a Bourne Shell whose working directory
          will be set to the specified directory.
            During the unpacking,  the  normal  output  from  the
          unshar  process will appear on the screen, and the menu



          Unshar.Result in the unshar directory.
            The file  specified  in  unshar-header-file  (default
          "Unshar.Headers")  in the unshar directory will contain
          the header and initial text (before the shar data) from
          the  article.  You can use the `G' {goto-group} command
          to look at the Unshar.Headers file.

     :decode   {decode}
          Decode uuencoded articles into binary files.  You  will
          be  prompted  for  the name of a directory in which you
          want nn to place the decoded  binary  files  (the  file
          names are taken from the uuencoded data).
            nn will combine several articles into single files as
          needed,  and  you  can  even  decode unrelated packages
          (into the same directory) with one decode command.
            To be able  to  decode  a  binary  file  which  spans
          several  articles,  nn  may  have to ignore lines which
          fail the normal sanity checks on uuencoded data instead
          of treating them as transmission errors.  Consequently,
          it is  strongly  recommended  to  check  the  resulting
          decoded  file using the checksum which is normally con-
          tained in the original  article.   (Actually,  you  are
          also  supposed  to do this after decoding with a stand-
          alone uudecode program).
            The header and initial  information  in  the  decoded
          articles  are  saved  in  the file specified in decode-
          header-file  (default  "Decode.Headers")  in  the  same
          directory as the decoded files.
            If  decode-skip-prefix  is  non-null,  :decode   will
          attempt  to  ignore  up to that many characters on each
          line to find the encoded data.   This  is  particularly
          useful  in  some  binaries  groups where files are both
          uuencoded and packed with shar; nn will ignore the pre-
          fix  added  to  each  line by shar, and thus be able to
          unshar, concatenate,  and  decode  multi-part  postings
          automatically.

     In reading mode, the following keys  can  also  be  used  to
     invoke the save commands:

     s    Same as S.

     o    Same as O.

     w    Same as W.

     P    Same as :print.





     to  specify  a default save file in the init file, either in
     connection with the group  presentation  sequence  or  in  a
     separate  save-files section (see below).  If a default save
     file is specified for the group, nn will show  this  on  the
     prompt line when it prompts for the file name.  You can edit
     this name as usual, but if you kill the entire name  immedi-
     ately,  nn  will replace the default name with the last file
     name you entered.  If you kill this as well, nn  will  leave
     you with a blank line.

     If the quick-save variable is set, nn will only prompt for a
     save  file name when the current article is inside a folder;
     otherwise, the default save file defined in  the  init  file
     will be used unconditionally.

     If the file (and directories in the path) does not exist, nn
     will  ask  whether  the file (and the directories) should be
     created.

     If the file name contains an asterisk, e.g.
          part*.shar
     nn will save each of the articles in  uniquely  named  files
     constructed  by  replacing  the asterisk by numbers from the
     sequence 1, 2, 3,  etc.   The  format  of  the  string  that
     replaces  the  *  can be changed with the save-counter vari-
     able, and the first number to use can be changed  via  save-
     counter-offset.

     In selection mode, nn will prompt you for the identifier  of
     one  or more articles you want to save.  When you don't want
     to save more articles, just hit space.  The  saved  articles
     will be marked read.

     If you enter an asterisk `*' when you are  prompted  for  an
     article to save, nn will automatically save all the selected
     articles on the current menu page and mark them read.

     Likewise, if you enter a plus `+',  nn  will  save  all  the
     selected articles on all menu pages and mark them read.

     This is very useful to unpack an entire  package  using  the
     :unshar and :decode commands.  It can also be used in combi-
     nation with the save selected articles  feature  to  save  a
     selection  of  articles  in  separate, successively numbered
     files.  But do not confuse these two concepts!  The  S*  and
     S+  commands  can be used to save the selected articles in a
     single file as well as in separate files, and  the  save  in
     separate  files feature can be used also when saving indivi-
     dual articles, either in  the  selection  mode,  or  in  the



     header,  any header lines in the body of the article will be
     escaped by a tilde (e.g. ~From: ...) to enable nn  to  split
     the folder into separate articles.  The escape string can be
     redefined via the embedded-header-escape variable.

     Articles can optionally be saved in MAIL or MMDF  compatible
     format by setting the mail-format and mmdf-format variables.
     These variables only specify the format used when creating a
     new  folder,  while  appending to an existing folder will be
     done in the format of the folder (unless folder-format-check
     is false).

     Related variables:  confirm-append, confirm-create,  decode-
     header-file,  decode-skip-prefix, default-save-file, folder-
     save-file,  edit-patch-command,  edit-print-command,   edit-
     unshar-command,  folder,  folder-format-check,  mail-format,
     mmdf-format,  patch-command,  printer,   quick-save,   save-
     counter,  save-counter-offset, save-report, suggest-default-
     save, unshar-command, unshar-header-file.


FOLDER MAINTENANCE

     When more than one article is saved in a folder, nn is  able
     to  split  the folder, and each article in the folder can be
     treated like a separate article.

     This means that you can save, decode, reply, follow-up, etc.
     just as with the original article.

     You can also cancel (delete) individual articles in a folder
     using  the  normal C {cancel} command described later.  When
     you quit from the folder, you will then be given the  option
     to remove the cancelled articles from the folder.

     The original folder is saved in a file named `BackupFolder~'
     in  the  .nn directory (see the backup-folder-path variable)
     by renaming or copying the old folder as appropriate.   When
     the  folder  has  been compressed, the backup folder will be
     removed unless the variable keep-backup-folder is set.

     If all articles in a folder are cancelled, the  folder  will
     be  removed or truncated to zero length (whatever is allowed
     by directory and file permissions).  In this case no  backup
     folder is retained even when keep-backup-folder is set!

     If the variable trace-folder-packing is set,  nn  will  show
     which  articles are kept and which are removed as the folder
     is rewritten.





     Related variables:  backup-folder-path,  keep-backup-folder,
     trace-folder-packing.


FILE NAME EXPANSION

     When the save commands prompts for a file name, the  follow-
     ing  file name expansions are performed on the file name you
     enter:

     +folder
          The + is replaced by the contents of the  folder  vari-
          able (default value "~/News/") resulting in the name of
          a file in the folder directory.  Examples:
               +emacs, +nn, +sources/shar/nn

     +    A single plus is replaced by the expansion of the  file
          name contained in the default-save-file variable (or by
          folder-save-file when saving from a folder).

     ~/file
          The ~ is replaced by the contents  of  the  environment
          variable  HOME,  i.e. the path name of your home direc-
          tory.  Examples:
               ~/News/emacs, ~/News/nn, ~/src/shar/nn

     ~user/file
          The ~user part is replaced by the user's home directory
          as defined in the /etc/passwd file.

     |command-line
          Instead of writing to a file, the articles are piped to
          the  given  shell (/bin/sh) command-line.  Each save or
          write command will create  a  separate  pipe,  but  all
          articles  saved or written in one command (in selection
          mode) are given as input to  the  same  shell  command.
          Example:
               | pr | lp
          This will print the articles on the printer after  they
          have been piped through pr.
              It is possible to create separate  pipes  for  each
          saved  article  by  using  a  double pipe symbol in the
          beginning of the command, e.g.
               || cd ~/src/nn ; patch

     The following symbols are expanded in a file  name  or  com-
     mand:

     $F   will be expanded to the name of the current group  with
          the periods replaced by slashes, e.g. rec/music/synth.




          the  current group.  You may use this to create default
          save  file  names  like  +src/$L  in  the  comp.sources
          groups.

     $N   will be expanded to the (local)  article  number,  e.g.
          1099.   In selection mode it is only allowed at the end
          of the file name!

     $(VAR)
          is replaced by the  string  value  of  the  environment
          variable VAR.

     Using these symbols, a simple  naming  scheme  for  `default
     folder  name' is +$G which will use the group name as folder
     name.  Another possibility is +$F/$N.

     As mentioned above, you can  also  instruct  nn  to  save  a
     series  of  files  in  separate,  unique files.  All that is
     required is that the file name contains an asterisk, e.g.
          +src/hype/part*.shar
     This will  cause  each  of  the  articles  to  be  saved  in
     separate,  unique files named part1.shar, part2.shar, and so
     on, always choosing a part number that results in  a  unique
     file  name  (i.e. if part1.shar did already exist, the first
     article  would  be  saved  in  part2.shar,   the   next   in
     part3.shar, and so on).

     Related variables:  default-save-file, folder,  folder-save-
     file, save-counter, save-counter-offset.


FILE AND GROUP NAME COMPLETION

     When entering a file name or a news  group  name,  a  simple
     completion  feature is available using the space, tab, and ?
     keys.

     Hitting  space  anywhere  during  input  will  complete  the
     current  component  of  the file name or group name with the
     first available possibility.

     If this possibility is not the one you want, keep on hitting
     space until it appears.

     When the right completion has appeared, you  can  just  con-
     tinue  typing  the file or group name, or you can hit tab to
     fix the current component, and get the first possibility for
     the  next  component,  and  then use space to go through the
     other possible completions.





     the next part of the list.

     The current completion can be deleted with the erase key.

     The default value for a file name is the last file name  you
     have entered, so if you enter a space as the first character
     after the prompt, the last file name will be  repeated  (and
     you  can edit it if you like).  In some cases, a string will
     already be written for you in the prompt line,  and  to  get
     the  default  value  in these cases, use the kill key.  This
     also means that if you neither want the initial  value,  nor
     the  default  value,  you will have to hit the kill twice to
     get a clean prompt line.

     Related   variables:    comp1-key,   comp2-key,    help-key,
     suggest-default-save.


POSTING AND RESPONDING TO ARTICLES

     In both selection mode and reading mode  you  can  post  new
     articles,  post  follow-ups to articles, send replies to the
     author of an article, and you can send mail to another  user
     with  the  option of including an article in the letter.  In
     reading mode, a response is made  to  the  current  article,
     while  in selection mode you will be prompted for an article
     to respond to.

     The  following  commands  are  available   (the   lower-case
     equivalents are also available in reading mode):

     R    {reply}
          Reply through mail to the author of the article.   This
          is  the  preferred  way to respond to an article unless
          you think your reply is of general interest.

     F    {follow}
          Follow-up with an article in the same newsgroup (unless
          an  alternative  group  is  specified  in  the  article
          header).  The distribution of the follow-up is normally
          the same as the original article, but this can be modi-
          fied via the follow-distribution variable.

     M    {mail}
          Mail a letter or forward an article to a  single  reci-
          pient.   In selection mode, you will be prompted for an
          article to include in your letter, and in reading  mode
          you  will  be  asked  if  the current article should be
          included in the letter.  You will then be prompted  for
          the recipient of the letter (default recipient is your-
          self) and the subject of the letter (if an  article  is



          posted  letter if it is forwarded (i.e. not edited), or
          if the variable include-full-header is set.

     :post     {post}
          Post a new article to any newsgroup.  This command will
          prompt  you for a comma-separated list of newsgroups to
          post to (you cannot enter a space because space is used
          for group name completion as described below).
            If you enter ? {help-key} as the first key,  nn  will
          show  you a list of all available news groups and their
          purpose.  While paging through this list, you can enter
          q  to  quit  looking at the list.  You can also enter /
          followed by a regular expression  (typically  a  single
          word) which will cause nn to show a (much shorter) list
          containing only the lines matching the regular  expres-
          sion.
             Normally, you will be prompted for the  distribution
          of  the  article  with  the  default take from default-
          distribution, but this can be  changed  via  the  post-
          distribution variable.

     Generally, nn will construct a file with a suitable  header,
     optionally  include  a  copy of the article in the file with
     each non-empty line prefixed by a `>' character  (except  in
     mail  mode),  and invoke an editor of your choice (using the
     EDITOR environment variable) on this file,  positioning  you
     on  the  first  line of the body of the article (if it knows
     the editor).

     When you have completed editing the message, it will compare
     it to the unedited file, and if they are identical (i.e. you
     did not make any changes to the file), or it is  empty,  the
     operation  is cancelled.  Otherwise you will be prompted for
     an action to take on the constructed  article  (enter  first
     letter  followed  by  return,  or  just  return  to take the
     default action):
9         a)bort c)c e)dit h)old i)spell m)ail p)ost r)eedit s)end v)iew w)rite 7)bit
         Action: (post article)
9     You now have the opportunity to perform one of the following
     actions:

       a    throw the response away (will ask for confirmation),
       c    mail a copy of a follow-up to the poster of the arti-
       cle,
       e    edit the file again,
       h    hold response for later completion,
       i    run an (interactive) spell-checker on the text,
       m    mail a (blind) copy to a specified recipient,



SunOS 5.5           Last change: Release 6.5                   28
       s    send the article or letter,
       v    view the article (through the pager),
       w    append it to a file (before you send it),
       y    confirm default answer (e.g. yes post it), or
       7    strip the high-order bit from all characters  in  the
       message

     If you have selected a 7-bit character set (this  is  deter-
     mined by the values of the charset and data-bits variables),
     nn will not allow you to post an article or  send  a  letter
     whose  body contains characters with the high-order bit set.
     It will warn you after you have first edited the message and
     disable  the  c)c, m)ail, p)ost, s)end and y)es actions. You
     can then either e)dit the message to  delete  those  charac-
     ters,  use  7)bit  to  strip the high-order bits, a)bort the
     message, or h)old it and select an 8-bit character set  from
     nn.

     To complete an unfinished response saved by the  h)old  com-
     mand,  simply  enter  any  response  action, e.g. R {reply}.
     This will notice the unfinished response and ask you whether
     you  want  to complete it now.  Only one unfinished response
     can exist at a time.  Notice that the $A  environment  vari-
     able  may no longer be valid as a path to the original arti-
     cle when the response is completed.

     If your message contains 8-bit characters, the charset vari-
     able  is  not  set  to  "unknown"  and  the message does not
     already have a MIME-Version or Content-XXX header,  nn  will
     add the following headers to your message before sending it:
9          MIME-Version: 1.0
          Content-Type: text/plain; charset=charset
          Content-Transfer-Encoding: 8bit
9     It must be noted that  sending  8-bit  characters  over  the
     current  news  and  mail networks is risky at best; although
     large parts of the network will pass through such characters
     unchanged,  high-order  bits  may  occasionally be stripped.
     Although the MIME standard provides solutions  for  this  by
     encoding  the  characters,  this is not yet supported by nn.
     Adding the above headers is an interim solution that is com-
     patible  with  current practice and is much better than just
     sending the message without any hints  about  the  character
     set used.

     Related    variables:     append-signature-mail,     append-
     signature-post,  charset,  data-bits,  default-distribution,
     follow-distribution, post-distribution, edit-response-check,



SunOS 5.5           Last change: Release 6.5                   29

     counter-offset, save-report, spell-checker.


JUMPING TO OTHER GROUPS

     By default nn will present the news groups in  a  predefined
     sequence  (see  the  section  on Presentation Sequence later
     on).  To override this sequence and have a look at any other
     group the G {goto-group} command available in both selection
     and reading mode enables you to move freely between all  the
     newsgroups.

     Furthermore, the G command enables you to open  folders  and
     other  files, to read old articles you have read before, and
     to grep for a specific subject in a group.

     It is important to notice that normally the goto command  is
     recursive,  i.e. a new menu level is created when the speci-
     fied group or folder is presented,  and  when  it  has  been
     read,  nn  will  continue the activity in the group that was
     presented before the goto command was executed.  However, if
     there  are unread articles in the target group you can avoid
     entering a new menu level by using  the  j  reply  described
     below.   The  current menu level (i.e. number of nested goto
     commands) will be shown in the  prompt  line  as  "<N>"  (in
     reverse video).

     The goto command is very powerful, but unfortunately also  a
     little  bit tricky at first sight, because the facilities it
     provides depend on the context in which the command is used.

     When executed, the goto command will prompt you for the name
     of  the newsgroup, folder, or file to open.  It will use the
     first letter you enter to distinguish these three possibili-
     ties:

     return
          An empty answer is equivalent to the current newsgroup.

     letter
          The answer is taken to be the name of a newsgroup.   If
          a  news  group  with  the given name does not exist, nn
          will treat the  answer  as  a  regular  expression  and
          locate the first group in the presentation sequence (or
          among all groups) whose name matches the expression.

     +
          The answer is taken to be the name  of  a  folder.   If
          only  `+'  is  entered, it is equivalent to the default



SunOS 5.5           Last change: Release 6.5                   30

          home directory, or an absolute path name for the file.

     %    In reading mode, this reply corresponds to reading  the
          current  article  (and  splitting  it as a digest).  In
          selection mode, it will prompt for an  article  on  the
          menu to read.

     @    This choice is equivalent to the archive file  for  the
          current  group.   nnmaster maintains archive files with
          all old and current articles for the groups which  have
          the  auto-archive  option  set  in the GROUPS file (see
          nnmaster(8)).

     = and number
          These  answers  are  equivalent  to  the  same  answers
          described  below  applied  to the current group (e.g. G
          return = and G = are equivalent).

     Specifying a folder, a file, or an  article  (with  %)  will
     cause  nn  to treat the file like a digest and split it into
     separate  articles  (not  physically!)    which   are   then
     presented  on  a menu in the usual way, allowing you to read
     or save individual subarticles from the folder.

     When you enter a group name, nn will ask you how many  arti-
     cles in the group you want to see on the menu.  You can give
     the following answers:

     a number N
          In this case you will get the newest N articles in  the
          group,  or  if you specified the current group (by hit-
          ting return to the group name prompt  or  entering  the
          number directly), you will get that many extra articles
          included on the same menu (without creating a new  menu
          level).

     j    This answer can only be given if there are unread arti-
          cles  in  the  group.   It  will  instruct  nn  to jump
          directly to the specified  group  in  the  presentation
          sequence without creating a new menu level.

     u    This instructs nn to present the unread articles in the
          group (if there are any).  If you have already read the
          group (in the current invocation of nn), the  u  answer
          will  instruct  nn  to  present  the articles that were
          unread when you entered nn.




SunOS 5.5           Last change: Release 6.5                   31

          in the subject.   Notice  that  case  is  ignored  when
          searching for the word in the subject lines.

     nword
          Same as the s form except that it searched for articles
          where the sender name matches word.

     eword
          Same as the s form except that it Psearched  for  arti-
          cles  where  either  the  subject  or  the  sender name
          matches word.

     word = /regexp
          When the first character of the word specified with the
          s, n, and e forms is a slash `/', the rest of the input
          is interpreted as a regular expression to  search  for.
          Notice  that regular expression matching is case insen-
          sitive when case-fold-search is set (default).

     return
          The meaning of an empty answer depends on the  context:
          if there are unread articles in the specified group the
          unread articles will be presented, otherwise all  arti-
          cles in the group will be included in the menu.

     If you specified the current group,  and  the  menu  already
     contains all the available articles, nn will directly prompt
     for a word to search for in the subject of all articles (the
     prompt will be an equal sign.)

     When the goto command creates a new menu level, nn will  not
     perform  auto  kill  or selection in the group.  You can use
     the + command in menu mode to perform the auto-selections.

     There are three commands in the goto family:

     G    {goto-group}
          This is the general goto command described above.

     B    {back-group}
          Backup one or more groups.  You can hit this key one or
          more  times  to go back in the groups already presented
          (including those without new articles); when  you  have
          found the group you are looking for, hit space to enter
          it.

     A    {advance-group}



SunOS 5.5           Last change: Release 6.5                   32

          the  next group in the sequence with unread articles or
          which has previously been visited.

     P    {previous}
          When used within an A or B command, it skips  backwards
          to  the  preceding  group  in  the sequence with unread
          articles or which has previously been visited.

     Once you have entered an A or Bcommand, you can  freely  mix
     the  A, B, P, and N commands to find the group you want, and
     you can also use the G command to be prompted  for  a  group
     name.

     To show the use of the goto command some typical examples on
     its use are given below:

     Present the unread articles in the dk.general group

9 G dk.general return u


     Jump directly to the gnu.emacs group and continue from there

9 G gnu.emacs return j


     Include the last 10 READ articles in the current group menu

9 G 10 return


     Find all articles in rec.music.misc on the subject Floyd

9 G rec.music.misc return

          = floyd return
9
     Open the folder +nn

9 G +nn return


     Split current article as a digest (in reading mode)

9 G %



     Related  variables:   case-fold-search,   default-save-file,
     folder-save-file


AUTOMATIC KILL AND SELECTION

     When there is a subject or an author which  you  are  either
     very  interested  in,  or find completely uninteresting, you
     can easily instruct nn to auto-select or auto-kill  articles
     with  specific  subjects  or  from  specific authors.  These



SunOS 5.5           Last change: Release 6.5                   33


9

     Entries in the kill file may apply to a single newsgroup  or
     to all newsgroups.  Furthermore, entries may be permanent or
     they may be expired a  given  number  of  days  after  their
     entry.

     To increase performance, nn uses a compiled version  of  the
     kill file which is read in when nn is invoked.  The compiled
     kill file will automatically be updated if the  normal  kill
     file has been modified.

     The following dialog is used to build the kill file entry:

     AUTO (k)ill or (s)elect (CR => Kill subject 30 days)
          If you simply want nn to kill  all  articles  with  the
          subject  of  the current article (in reading mode) or a
          specific article (which nn will prompt for in selection
          mode),  just  hit return.  This will cause nn to create
          an entry in the kill  file  to  kill  the  current  (or
          specified) subject in the current group for a period of
          30 days (which should be enough for the  discussion  to
          die out).
9          You can control the default kill period, or  change  it
          into  a  "select"  period  via  the default-kill-select
          variable.
9          If this "default behaviour" is not what you want,  just
          answer  either  k  or  s  to  kill  or select articles,
          respectively, which will bring you on to  the  rest  of
          the questions.

     AUTO SELECT on (s)ubject or (n)ame  (s)
          (The SELECT will be substituted with KILL depending  on
          the  previous  answer).   Here  you specify whether you
          want the kill or select to depend on the subject of the
          article (s or space), or on the name of the author (n).

     SELECT NAME:
          (Again SELECT may be substituted with KILL and  SUBJECT
          may  replace NAME).  You must now enter a name (or sub-
          ject) to select (or kill).  In reading  mode,  you  may
          just  hit return (or %) to use the name (or subject) of
          the current article.  In selection mode,  you  can  use
          the  name  (or  subject) from an article on the menu by



SunOS 5.5           Last change: Release 6.5                   34






9          Otherwise, nn will select or kill articles  which  con-
          tain  the specified string anywhere in the name or sub-
          ject (ignoring case).

     SELECT in (g)roup `dk.general' or in (a)ll groups  (g)
          You must now specify  whether  the  selection  or  kill
          should  apply to the current group only (g or space) or
          to all groups (a).

     Lifetime of entry in days (p)ermanent  (30)
          You can now specify the lifetime of the  entry,  either
          by  entering a number specifying the number of days the
          entry should be active, or p to specify the entry as  a
          permanent  entry.   An  empty reply is equivalent to 30
          days.

     CONFIRM SELECT ....
          Finally, you will be asked to confirm  the  entry,  and
          you  should  especially note the presence or absence of
          the word exact which specify  whether  an  exact  match
          applies for the entry.

     Related variables:  default-kill-select, kill.


THE FORMAT OF THE KILL FILE

     The kill file consists of one line for  each  entry.   Empty
     lines and lines starting with a # character are ignored.  nn
     automatically places a # character in the first position  of
     expired  entries  when  it  compiles the kill file.  You can
     then edit the kill file manually from time to time to  clean
     out these entries.

     Each line has the following format
          [expire time :] [group name] : flags : string [: string]...

     Permanent entries have no expire time  (in  which  case  the
     colon  is  omitted  as  well!).   Otherwise, the expire time
     defines the time (as a time_t value) when the  entry  should
     be expired.

9


SunOS 5.5           Last change: Release 6.5                   35






NN(1)                     User Commands                     NN(1)

     empty
          An empty group  field  will  apply  the  entry  to  all
          groups.

     The flags field consists of a list of characters which iden-
     tifies  the  type  of  entry, and the interpretation of each
     string field.  When used, the flag characters must  be  used
     in the order in which they are described below:

     ~    (optional)
          When this flag is present on any of the entries  for  a
          specific  group,  it  causes  all entires which are not
          auto-selected to be killed.  This is a  simple  way  to
          say: I'm interested in this and that, but nothing else.

     +    or ! (optional)
          Specify an auto-select  +  or  an  auto-kill  !  entry,
          respectively.  If neither are used, the article is nei-
          ther selected nor killed which is useful in combination
          with the `~' flag.

     > (optional)
          When used with a subject (flag s), the kill entry  only
          matches follow-ups to that subject (i.e. where the Sub-
          ject: line starts with Re:).  For example, to kill  all
          "Re:"'s  in  rec.humor  use  the  following kill entry:
          rec.humor:!>s/:.

     < (optional)
          When used with a subject (flag s), the kill entry  only
          matches base articles with that subject (i.e. where the
          Subject: line does not start with Re:).   For  example,
          to  kill  all articles asking for help (but not follow-
          ups) in the tex group, add this to your kill file:
               comp.text.tex:!s</:^HELP

     n or s or a (mandatory)
          Specify whether the corresponding string applies to the
          name n or to the subject s of an article.  If flag a is
          used, the corresponding string is ignored (but must  be



SunOS 5.5           Last change: Release 6.5                   36






NN(1)                     User Commands                     NN(1)

          matching is not used, the name or subject  must  be  of
          the same length of the string to match.  Otherwise, the
          match will be case insensitive, and a string may  occur
          anywhere in the name or subject to match.

     | or & (mandatory if multiple strings)
          If more than one string is specified, the set of  flags
          corresponding  to  each  string  must  be  separated by
          either an or operator `|' or an and operator `&'.   The
          and operator has a higher precedence than the or opera-
          tor, e.g.  a  complex  match  expression  a|b&c|d  will
          succeed if either of a, b&c, or d matches.

     The string field in the entry is the name, subject or  regu-
     lar expression that will be matched against the name or sub-
     ject of each article in the group (or all  groups).   Colons
     and  backslashes  must  be  escaped  with a backslash in the
     string.

     Example 1:  Auto-select articles from `Tom Collins'  (exact)
     on subject `News' in all groups:
9         :+n=&s:Tom Collins:News

     Example 2:  Kill all articles which are neither  from  `Tom'
     or `Eve' in some.group.  Select only articles from Eve:
9         some.group:~n:Tom
         some.group:+n:Eve

     The second example can also be written  as  a  single  entry
     with an or operator (in this case, the select/kill attribute
     only applies to the succeeding strings):
         some.group:~n|+n:Tom:Eve

     To remove expired entries, to "undo" a  K  command,  and  to
     make  the  more  advanced entries with more than one string,
     you will have to edit the kill file manually.  To  recompile
     the file, you can use the :compile command.  When you invoke
     nn, it will also recompile the kill  file  if  the  compiled
     version is out of dat.



SunOS 5.5           Last change: Release 6.5                   37






NN(1)                     User Commands                     NN(1)


     $G   will be substituted with the name of the  current  news
          group.

     $L   will be substituted with the last component of the name
          of the current news group.

     $F   will be substituted with the name of the  current  news
          group with the periods replaced by slashes.

     $N   will be substituted with  the  (local)  article  number
          (only defined in reading mode).

     $A   is replaced by the full path name of the file  contain-
          ing the current article (only defined in reading mode).

     %    Same as $A.

     $(VAR)
          is replaced by the  string  value  of  the  environment
          variable VAR.

     When the shell command is completed, you will  be  asked  to
     hit  any  key  to continue.  If you hit the ! key again, you
     will be prompted for a new shell  command.   Any  other  key
     will  redraw  the screen and return you to the mode you came
     from.

     Related variables:  shell, shell-restrictions.


MISCELLANEOUS COMMANDS

     Below are more useful commands which are available  in  both
     selection and reading modes.

     U    {unsub}
          Unsubscribe to the current group.   You  will  not  see
          this  group  any more unless you explicitly request it.
          If the variable unsubscribe-mark-read is set, all arti-
          cles  in  the group will be marked read when you unsub-
          scribe.



SunOS 5.5           Last change: Release 6.5                   38






NN(1)                     User Commands                     NN(1)


          own  articles.   See also the section on folder mainte-
          nance.

     Y    {overview}
          Provide an overview of the groups with unread articles.

     "    {layout}
          Change menu layout in selection mode.  The menu will be
          redrawn  using the next layout (cycling through ..., 2,
          3, 4, 0, 1, ...)

     Most of the commands in nn are bound to a  key  and  can  be
     activated  by  a single keystroke.  However, there are a few
     commands that cannot be bound to a key directly.

     As shown in the keystroke command descriptions, all commands
     have  a  name,  and  it is possible to activate a command by
     name with the extended command key (:).   Hitting  this  key
     will  prompt you for the name of a command (and parameters).
     For example, an alternative to hitting the R key to reply to
     an  article is to enter the extended command :reply followed
     by return.  The :post and :unshar commands described earlier
     can  also  be bound to a key.  The complete list of commands
     which can be bound to keys is provided in the section on Key
     Mappings below.

     The following extended commands cannot be bound  to  a  key,
     mainly  because  they  require  additional parameters on the
     prompt line,  or  because  it  should  not  be  possible  to
     activate them too easily.

     :admin
          Enter administrative mode.  This is identical in opera-
          tion to the nnadmin(1M) program.

     :bug Prepare and send a bug report to  the  nn-bugs  mailing
          address.

     :cd [ directory ]



SunOS 5.5           Last change: Release 6.5                   39






NN(1)                     User Commands                     NN(1)



     :coredump
          Abort with a core dump.  For debugging purposes only.

     :define macro
          Define macro number macro as  described  in  the  Macro
          Definition  section  below.   If  macro is omitted, the
          next free macro number will be chosen.

     :dump table
          Same as the :show command described below.

     :help [ subject ]
          Provide online help on the specified subject.   If  you
          omit  the  subject, a list of the available topics will
          be given.

     :load [ file ]
          Load the specified file.  If the file argument is omit-
          ted,  the init file is reloaded.  The sequence part (if
          present) is ignored.

     :local variable [ value ]
          Make the variable local to the current  group.   Subse-
          quent  changes  to  the variable will only be effective
          until the current group is left.  If a value is  speci-
          fied,  it  will  be assigned to the local variable.  To
          assign a new value to a boolean variable, the values on
          and off must be used.

     :lock variable
          Lock the specified variable so it cannot be modified.

     :man Call up the online manual.  The manual is presented  as
          a  normal  folder  with  the program name in the `From'
          field and the section title  in  the  `subject'  field.
          All  the  normal commands related to a folder works for
          the online manual as well, e.g. you can save and  print
          sections of the manual.



SunOS 5.5           Last change: Release 6.5                   40






NN(1)                     User Commands                     NN(1)


          This file is automatically displayed on start-up  when-
          ever it changes if the motd variable is set.

     :pwd Print path name of current working directory on message
          line.

     :q   Has no effect besides redrawing the  screen  if  neces-
          sary.  If an extended command (one which is prefixed by
          a :) produces any output requirering the screen  to  be
          redrawn,  the screen will not be redrawn immediately if
          the variable delay-redraw is set (useful on slow termi-
          nals).   Instead another : prompt is shown to allow you
          to enter a new extended  command  immediately.   It  is
          sufficient  to  hit return to redraw the screen, but it
          has been my experience that entering q return  in  this
          situation happens quite often, so it was made a no-op.

     :q!  Quit nn without updating the .newsrc file.

     :Q   Quit nn.  This is equivalent to the normal Q command.

     :rmail
          Open your mailbox (see the mail variable) as  a  folder
          to read the incoming messages.  This is not a full mail
          interface (depending on the nn configuration,  you  may
          not  be  able  to  delete messages, add cc: on replies,
          etc), but it can give you a quick glance  at  new  mail
          without leaving nn.

     :set variable [ value ]
          Set a boolean variable to true or assign the value to a
          string  or  integer  variable.   The  :set  command  is
          described in details in the section on VARIABLES.

     :sh  Suspend nn, or  if  that  is  not  possible,  spawn  an
          interactive shell.

     :show groups mode
          Show the total number or the number of unread  articles



SunOS 5.5           Last change: Release 6.5                   41






NN(1)                     User Commands                     NN(1)



     :show kill
          Show the kill entries that applies to the current group
          and to all groups.

     :show rc [ group ]
          Show the  .newsrc  and  select  file  entries  for  the
          current or the specified group.

     :show map [ mode ]
          Show the key bindings in the current or specified mode.

     :sort [ mode ]
          Reorder the articles on the menu according to  mode  or
          if  omitted  to  the  default sort-mode.  The following
          sorting modes are available:
          arrival: list articles by local  article  number  which
          will  be the same as the order in which they arrived on
          the system (unless groups are merged),
          subject: articles with identical subjects  are  grouped
          and  ordered  after  age  of  the oldest article in the
          group,
          lexical: subjects in lexicographical order,
          age: articles ordered after posting date only,
          sender: articles ordered after sender's name.

     :toggle variable
          Toggle a boolean variable.

     :unread [ group ] [ articles ]
          Mark the current (or specified) group  as  unread.   If
          the  articles argument is omitted, the number of unread
          articles in the group will be  set  to  the  number  of
          unread  articles  when  nn was invoked.  Otherwise, the
          argument specifies the number of unread articles.

     :unset variable
          Set a boolean variable to false  or  clear  an  integer
          variable.



SunOS 5.5           Last change: Release 6.5                   42






NN(1)                     User Commands                     NN(1)


     interactively or automatically.  If you instruct nn to catch
     up automatically, it will simply mark all  articles  in  all
     groups as read, thus bringing you completely up-to-date.

     If you choose the  interactive  mode,  nn  will  locate  all
     groups  with  unread  articles,  and  for each group it will
     prompt you for an action to take on the group.  An action is
     selected using a single letter followed by return.  The fol-
     lowing actions are available:

     y    Mark all articles as read in current group.

     n    Do not update group (this is the default action if  you
          just hit return).

     r    Enter reading mode to read the group.

     U    Unsubscribe to the group.

     ?    Give a list of actions.

     q    Quit.  When you quit, nn will ask whether the  rest  of
          the groups should be updated unconditionally or whether
          they should remain unread.


VARIABLES AND OPTIONS

     It is possible to control the behaviour of  nn  through  the
     setting  (and  unsetting)  of the variables described below.
     There are several ways of setting variables:
     - Through command line options when nn is invoked.
     - Through  assignments  on  the  command  line  when  nn  is
     invoked.
     - Through global set commands in the init file.
     - Through set or local commands executed from entry macros.
     - Through the :set extended command when you run nn.

     There are four types of variables:
     - Boolean variables
     - Integer variables



SunOS 5.5           Last change: Release 6.5                   43






NN(1)                     User Commands                     NN(1)


     the command:
          toggle variable

     For example:
          set time
          unset time
          set notime
          toggle time

     Integer variables control an amount e.g.  the  size  of  the
     preview window, or the maximum number of articles to read in
     each group.  They are set with the following command:
          set variable value
     In some cases, not setting an integer value  has  a  special
     meaning, for example, not having a minimal preview window or
     reading all articles in the groups no matter how many  there
     are.   The special meaning can be re-established by the fol-
     lowing command:
          unset variable
     For example:
          set window 7
          unset limit

     String variables may specify directory names, default values
     for prompts, etc.  They are set using the command
          set variable string
     Normally, the string value assigned to  the  variable  value
     starts  at  the first non-blank character after the variable
     name and ends with the last non-blank  character  (excluding
     comments)  on  the  line.   To  include  leading or trailing
     blanks, or the comment start symbol, #, in the  string  they
     must   be  escaped  using  a  backslash  `\',  e.g.  to  set
     included-mark to the string " # ", the following  assignment
     can be used:
9          set included-mark  \ \#\   # blank-#-blank
9     To include a backslash in the string, it must be  duplicated
     `\\'.  A backslash may also be used to include the following
     special characters in the  string:  \a=alarm,  \b=backspace,



SunOS 5.5           Last change: Release 6.5                   44






NN(1)                     User Commands                     NN(1)



     setup file:
          set included-mark >
          lock included-mark

     The current variable settings can be  shown  with  the  :set
     command:

     :set (without arguments)
          This will give a listing of the  variables  which  have
          been set in either the init file or interactively.

     :set all
          This will give a listing of  all  variables.   Modified
          variables will be marked with a `*' and local variables
          will be marked with a `>'.  A locked variable is marked
          with a `!'.

     :set /regexp
          This will give a listing of all  variables  whose  name
          matches the given regular expression.

     :set partial-name space
          The space (comp1-key) key will  complete  the  variable
          name as usual, but as a side effect it will display the
          variable's current value in the message line.

     Variables are global by default, but a  local  instantiation
     of  the  variable  can  be created using the :local command.
     The local variable will overlay the global variable as  long
     as  the  current  group  is active, i.e. the global variable
     will be used again when you exit  the  current  group.   The
     initial  value of the local variable will be the same as the
     global variable, unless a new  value  is  specified  in  the
     :local command:

9 :local variable [ value ]

9




SunOS 5.5           Last change: Release 6.5                   45






NN(1)                     User Commands                     NN(1)



     The following variables are available:
          set, subgroups are only included if the group  name  is
          followed  by  a `.' in which case the main group is not
          included,  i.e.   `comp.unix'  is  not  included   when
          `comp.unix.' is specified in the presentation sequence,
          and vice-versa.  Following a group name by an  asterisk
          `*', e.g. comp.unix*, will include the group as well as
          all subgroups independently of  the  setting  of  also-
          subgroups.

     append-signature-mail    (boolean, default false)
          When false, it is assumed that the .signature  file  is
          automatically  appended  to  responses sent via E-mail.
          If true, .signature will be appended to the letter (see
          query-signature).

     append-signature-post    (boolean, default false)
          When false, it is assumed that the .signature  file  is
          automatically  appended  to  posted articles.  If true,
          .signature will explicitly be appended to posted  arti-
          cles (see query-signature).

     attributes symbols  (string, default ....)
          Each element in this string represents a symbol used to
          represent  an  article  attribute when displayed on the
          screen.  See the section on Marking Articles and Attri-
          butes.

     auto-junk-seen (boolean, default true)
          When set, articles which have the  seen  attribute  (,)
          will be marked read when the current group is left.  If
          not set, these articles will still be either unread  or
          marked  seen  the  next  time the group is entered (see
          also confirm-junk-seen and retain-seen-status).

     auto-preview-mode        (boolean, default false)
          Enables Auto Preview Mode.  In this mode, selecting  an
          article  on  the menu using its article id (letter a-z)



SunOS 5.5           Last change: Release 6.5                   46






NN(1)                     User Commands                     NN(1)



          will enter preview mode on  that  article  immediately.
          limit  is  zero; it is activated unconditionally if the
          value is negative, and conditionally if  the  value  is
          greater  than zero and the number of unread articles in
          the current group does not exceed the given value.

     auto-select-closed mode  (integer, default 1)
          Normally, selecting a closed subject (usually in conso-
          lidated menu mode) will select (or deselect) all unread
          articles with the given subject  (or  all  articles  if
          they  are all read).  This behaviour can be changed via
          the value of this variable as follows:
          0: select only the first article with the subject (shown on menu).
          1: select only the unread articles with the subject.
          2: select all available articles with the subject.

     auto-select-rw (boolean, default false)
          If set, a subject of  an  article  read  or  posted  is
          automatically  used  for  subsequent auto-selecting (if
          not already selected).  This is the most efficient  way
          to see your own posts automatically.

     auto-select-subject (boolean, default false)
          When set, selecting an article from the menu using  the
          article  id  (a-z),  all  articles on the menu with the
          same subject will automatically be selected as well.

     backup    (boolean, default true)
          When set, a copy of  the  initial  .newsrc  and  select
          files will save be the first time they are changed.  nn
          remembers the initial contents of  these  files  inter-
          nally,  so  the  backup variable can be set any time if
          not set on start-up.

     backup-folder-path file  (string, default "BackupFolder~")
          When removing deleted  articles  from  a  folder,  this
          variable  defines  the  name  of the file where a (tem-
          porary) copy of the original folder is saved.   If  the



SunOS 5.5           Last change: Release 6.5                   47






NN(1)                     User Commands                     NN(1)



          file  name  doesn't  contain  a  `/',  the file will be

     case-fold-search         (boolean, default true)
          When set, string and regular expression  matching  will
          be  case  independent.  This is related to all commands
          matching on names or  subjects,  except  in  connection
          with  auto-kill  and  auto-select  where the individual
          kill file entries specifies this property.

     charset charset     (string, default "us-ascii")
          The character set in use on your terminal. Legal values
          are  "us-ascii",  "iso-8859-X",  where  X  is a nonzero
          digit, and "unknown".  Setting this variable also  sets
          the  data-bits variable to the default bit width of the
          character set (7 for "us-ascii" and  "unknown",  8  for
          the "iso-8859-X" sets).
9          The value of this variable also  determines  wether  nn
          allows  8-bit  characters in the body of articles being
          posted and letters being mailed (unless  the  value  is
          "unknown",  in  which  case  this  is determined by the
          value of the data-bits  variable).   If  necessary,  nn
          will  add  extra  headers to the message indicating its
          the character set.

     check-db-update-time H   (integer, default 12)
          When non-zero, nn will issue a warning if the  database
          has  not been updated in the last H hours.  The warning
          will tell you whether no news has  arrived  (feed  bro-
          ken?),  or  whether  it  is just nnmaster which has not
          updated the database (dead?).

     check-group-access  (boolean, default false)
          When set, nn will perform a check on the readability of
          a  group's readability before showing the menu for that
          group.  Normally, this is not necessary since all users
          traditionally  have access to all news groups.  Setting
          (and locking) this variable may be used to limit access
          to  a  news  group via the permissions and ownership of



SunOS 5.5           Last change: Release 6.5                   48


9


NN(1)                     User Commands                     NN(1)



          the group's spool directory (this will  only  work  for
          non-NNTP sites).

     comp1-key key  (key, default space)
          The key which gives the first/next completion, and  the
          default value when nn is prompting for a string, e.g. a
          file name.

     comp2-key key  (key, default tab)
          The key which ends the current completion and gives the
          first  completion  for  the  next  component when nn is
          prompting for a string, e.g. a file name.

     compress       (boolean, default false)
          This variable controls whether  text  compression  (see
          the compress command) is turned on or off when an arti-
          cle is shown.  The compression is still toggled for the
          current article with the compress command key.

     confirm-append      (boolean, default false)
          When set, nn will ask for confirmation before appending
          an  article  to  an  existing  file  (see also confirm-
          create).

     confirm-auto-quit        (boolean, default false)
          When set, nn will ask for confirmation before  quitting
          after having read the last group.  If not confirmed, nn
          will recycle  the  presentation  sequence  looking  for
          groups that were skipped with the `N' {next-group} com-
          mand.  But it will not look for  new  articles  arrived
          since the invocation of nn.

     confirm-create      (boolean, default true)
          When set, nn will ask for confirmation before  creating
          a  new  file  or  directory when saving or unpacking an
          article (see also confirm-append).

     confirm-entry       (boolean, default false)



SunOS 5.5           Last change: Release 6.5                   49






NN(1)                     User Commands                     NN(1)



          When set, nn will ask for confirmation before  entering
          a group with more than confirm-entry-limit unread arti-
          activated.

     confirm-junk-seen        (boolean, default false)
          When set, nn will require confirmation  before  marking
          seen articles as read when auto-junk-seen is set.

     confirm-messages         (boolean, default false)
          In some cases, nn will sleep one second (or more)  when
          it  has shown a message to the user, e.g. in connection
          with macro debugging.   Setting  confirm-messages  will
          cause  nn  to  wait  for you to confirm all messages by
          hitting any key.  (It will show the symbol <> to  indi-
          cate that it is awaiting confirmation.)

     consolidated-manual (boolean, default false)
          When set, the online manual will be presented with  one
          menu line for each program in the nn package.

     consolidated-menu        (boolean, default false)
          When set, nn will automatically close all multi-article
          subjects on entry to a group, so that each subject only
          occur once on the menu page.

     counter-delim-left  (string, default "[")
          The delimiter string output to the left of the  article
          counter in a closed subject's menu line.

     counter-delim-right (string, default "] ")
          The delimiter string output to the right of the article
          counter in a closed subject's menu line.

     counter-padding pad      (integer, default 5)
          On a consolidated menu, the subjects may  not  be  very
          well  aligned  because  the  added  [...] counters have
          varying  length.   To  (partially)  remedy  this,   all
          counters  (and  subjects without counters) are prefixed



SunOS 5.5           Last change: Release 6.5                   50






NN(1)                     User Commands                     NN(1)



          by up to pad spaces to get better alignment.   Increas-
          ing  it  further may yield practially perfect alignment
          subscribes to (i.e. you let  the  poster  decide  which
          group is most appropriate to read his posting).

     cross-post          (boolean, default false)
          Normally, nn will only show  cross-posted  articles  in
          the  first  subscribed  group  on the Newsgroups: line.
          When cross-post is set, nn will show cross-posted arti-
          cles in all subscribed groups to which they are posted.

     data-bits bits (integer, default 7)
          When set to 7, nn will display characters with the  8th
          bit  set  using a meta-notation M-7bit-char.  If set to
          8, these characters are sent  directly  to  the  screen
          (unless  monitor  is set). Setting the charset variable
          also sets this variable to the  default  bit  width  of
          character set.
9          It also controls whether keyboard input is 7 or 8 bits,
          and  thus  whether key maps contain 127 or 255 entries.
          See the key mapping section for more details.

9 If the charset has value "unknown", the value of data-

          bits  also determines wether nn allows 8-bit characters
          in the body of articles being posted and letters  being
          mailed  (this  is  normally  determined directly by the
          charset variable).

     date      (boolean, default true)
          If set nn will show the article posting date when arti-
          cles are read.

     debug mask     (integer, default 0)
          Look in the source if you are going to use this.

     decode-header-file file  (string, default "Decode.Headers")
          The name of the file in which the  header  and  initial
          text  of  articles  decoded with the :decode command is



SunOS 5.5           Last change: Release 6.5                   51






NN(1)                     User Commands                     NN(1)



          saved.  Unless the file name starts  with  a  `/',  the
          file  will  be  created  in  the  same directory as the
          decoded files.  The information is not  saved  if  this

     default-kill-select [1]days   (number, default 30)
          Specifies the default action for  the  K  {kill-select}
          command  if the first prompt is answered by return.  It
          contains the number of days to keep the kill or  select
          entry  in  the  kill  file  (1-99 days).  If it has the
          value days+100 (e.g. 130), it denotes that the  default
          action is to select rather than kill on the subject for
          the specified period.

     default-save-file file   (string, default +$F)
          The default save file used when saving articles in news
          groups  where  no  save  file has been specified in the
          init file (either in a save-files  section  or  in  the
          presentation sequence).  It can also be specified using
          the abbreviation "+" as the file name when prompted for
          a file name even in groups with their own save file.

     delay-redraw        (boolean, default false)
          Normally, nn will redraw the screen after extended com-
          mands  (:cmd) that clear the screen.  When delay-redraw
          is set nn will  prompt  for  another  extended  command
          instead of redrawing the screen (hit return to redraw).

     echo-prefix-key          (boolean, default true)
          When true, hitting a prefix key (see the section on key
          mapping  below)  will cause the prefix key to be echoed
          in the message line to indicate  that  another  key  is
          expected.

     edit-patch-command  (boolean, default true)
          When true, the :patch command  will  show  the  current
          patch-command  and  give you a chance to edit it before
          applying it to the articles.




SunOS 5.5           Last change: Release 6.5                   52






NN(1)                     User Commands                     NN(1)



     edit-print-command  (boolean, default true)
          When true, the print  command  will  show  the  current
          printer command and give you a chance to edit it before
          unshar-command  and give you a chance to edit it before
          applying it to the articles.

     editor command (string, default not set)
          When set, it will override the current EDITOR  environ-
          ment variable when editing responses and new articles.

     embedded-header-escape string (string, default '~')
          When saving an article to a file, header lines embedded
          in  the  body  of  the  article  are escaped using this
          string to make it possible for nn to split  the  folder
          correctly  afterwards.  Header lines are not escaped if
          this variable is not set.

     enter-last-read-mode mode     (integer, default 1)
          Normally, nn will remember which group is  active  when
          you quit, and offer to jump directly to this group when
          you start nn the next time.  This variable is  used  to
          control  this behaviour.  The following mode values are
          recognized:
          0: Ignore the remembered group (r.g.).
          1: Enter r.g. if the group is unread (with user confirmation)
          2: Enter r.g. or first unread group after it in the sequence (w/conf).
          3: Enter r.g. if the group is unread (no confirmation)
          4: Enter r.g. or first unread group after it in the sequence (no conf).

     entry-report-limit articles   (integer, default 300)
          Normally, nn will just move the  cursor  to  the  upper
          left  corner of the screen while it is reading articles
          from the database on  entry  to  a  group.   For  large
          groups  this may take more than a fraction of a second,
          and nn can then report what it is doing.   If  it  must
          read  more  articles  than the number specified by this
          variable, nn will report which group and how many arti-
          cles it is reading.



SunOS 5.5           Last change: Release 6.5                   53






NN(1)                     User Commands                     NN(1)



     erase-key key  (key, default tty erase key)
          The key which erases the last input character  when  nn
          is prompting for a string, e.g. a file name.

     flow-control   (boolean, default true)
          When set, nn will turn on xon/xoff flow-control  before
          writing  large  amounts  of  text  to the screen.  This
          should guard against lossage of  output,  but  in  some
          network  configurations it has had the opposite effect,
          losing several lines of the output.  This  variable  is
          always  true  on systems with CBREAK capabilities which
          can do single character reads  without  disabling  flow
          control.

     flush-typeahead     (boolean, default false)
          When true, nn will flush  typeahead  prior  to  reading
          commands  from  the keyboard.  It will not flush typea-
          head while reading parameters for a command, e.g.  file
          names etc.

     folder directory    (string, default ~/News)
          The full pathname of the folder  directory  which  will
          replace  the + in folder names.  It will be initialized
          from the FOLDER environment variable if it is  not  set
          in the init file.

     folder-format-check (boolean, default true)
          When saving an article with a full or partial header in
          an  existing  folder,  nn  will check the format of the
          folder to be able to append the article in  the  proper
          format.   If  this  variable  is  not  set, folders are
          assumed to be in the format  specified  via  the  mmdf-
          format  and  mail-format  variables,  and  articles are
          saved in that format without checking.  Otherwise,  the
          *-format  variables are only used to determine the for-
          mat for new folders.

     folder-save-file file    (string, default not set)



SunOS 5.5           Last change: Release 6.5                   54






NN(1)                     User Commands                     NN(1)



          The default save file used when saving articles from  a
          folder.

          - Then if ask is specified, the user will be  asked  to
          confirm  the  default  distribution  or provide another
          distribution.  However, if always (and same) is  speci-
          fied,  and  the  default  was  taken  from the original
          article's distribution, the  original  distribution  is
          used without confirmation.
          The default value of follow-distribution is always same
          default,  i.e.  use either the original distribution or
          the default-distribution without confirmation in either
          case.

     from-line-parsing strictness  (integer, default 2)
          Specifies how strict nn must parse a "From " line in  a
          folder to recognize it as a mail format message separa-
          tor line.  The following  strictness  values  determine
          whether a line starting with "From " will be recognized
          as a separator line:
               0: Always.
               1: Line must have at least 8 fields.
               2: Line must contain a valid date and time (ctime style).

     fsort          (boolean, default true)
          When set, folders are sorted  alphabetically  according
          to the subject (and age).  Otherwise, the articles in a
          folder will be presented in the sequence in which  they
          were saved.

     guard-double-slash  (boolean, default false)
          Normally, when  entering  a  file  name,  entering  two
          slashes  `//'  in a row (or following a slash by a plus
          `/+') will cause  nn  to  erase  the  entire  line  and
          replace it with the `/' (or `+').  On some systems, two
          slashes are used in network file names,  and  on  those
          systems  guard-double-slash can be set; that will cause



SunOS 5.5           Last change: Release 6.5                   55






NN(1)                     User Commands                     NN(1)



          nn to require three slashes  in  a  row  to  clear  the
          input.

     header-lines list   (string, no default)
          auto-selected - are automatically killed.  A great  way
          to read even less news!

     ignore-xon-xoff          (boolean, default false)
          Normally, nn will ignore ^S and ^Q in  the  input  from
          the  terminal  (if  they  are  not  handled  in the tty
          driver).  Setting this variable will treat these  char-
          acters as normal input.

     include-art-id      (boolean, default false)
          The first line in a  response  with  included  material
          normally   reads  "...somebody...  writes:"  without  a
          reference to the specific article from which the quota-
          tion  was  taken  (this  is  found  in  the References:
          line).  When this variable is set, the line  will  also
          include  the  article id of the referenced article: "In
          ...article... ... writes:".

     include-full-header (boolean, default false)
          When set, the mail (M) command will always include  the
          full header of the original article.  If it is not set,
          it only includes the header when the  article  is  for-
          warded without being edited.

     include-mark-blank-lines (boolean, default false)
          When set, the included-mark is placed on blank lines in
          included  articles.   Otherwise,  blank  lines are left
          blank (to make it easy to delete whole paragraphs  with
          `d}' in vi and `C-@ M-] C-W' in emacs).

     included-mark string     (string, default ">")
          This string is prefixed to all lines  in  the  original
          article  that  are  included in a reply or a follow-up.
          (Now you have the possibility to change it, but  please



SunOS 5.5           Last change: Release 6.5                   56






NN(1)                     User Commands                     NN(1)



          don't.  Lines with a mixture of prefixes like
             : orig-> <> } ] #- etc.
          are very difficult to comprehend.  Let's  all  use  the
          standard  folks!  (And hack inews if it is the 50% rule
          to the inews command.

     initial-newsrc-file file (string, default '.defaultnewsrc')
          Defines the name of a file which is used as the initial
          .newsrc  file  for  new  users.  The name may be a full
          path name, or as the default a file name which will  be
          looked for in a number of places:  in the standard news
          lib directory (where it can be shared with  other  news
          readers),  in  nn's  lib directory, and in the database
          directory.  Groups which are not present in the initial
          .newsrc  file  will  be automatically unsubscribed pro-
          vided new-group-action  is  set  to  a  value  allowing
          unsubscribed groups to be omitted from .newsrc.

     keep-backup-folder  (boolean, default false)
          When set, the backup  folder  (see  backup-folder-path)
          created when removing deleted articles from a folder is
          not removed.   Notice  that  a  backup  folder  is  not
          created if all articles are removed from a folder!

     keep-unsubscribed        (boolean, default true)
          When set, unsubscribed groups are kept in .newsrc.   If
          not  set, nn will automatically remove all unsubscribed
          from  .newsrc  if  tidy-newsrc  is   set.    See   also
          unsubscribe-mark-read.

     kill      (boolean, default true)
          If set, nn performs automatic kill and selection  based
          on the kill file.

     kill-debug          (boolean, default false)
          When  set,  nn  will  display  a  trace  of  the  auto-
          kill/select  process  on  entry  to  a  group.   It  is
          automatically turned off  if  `q'  is  entered  as  the



SunOS 5.5           Last change: Release 6.5                   57






NN(1)                     User Commands                     NN(1)



          answer  to a "hit any key" prompt during the debug out-
          put.

     kill-key key   (key, default tty kill key)
          between 0 and 4.

     limit max-articles  (integer, default infinite)
          Limit the maximum number of articles presented in  each
          group  to  max-articles.  The default is to present all
          unread articles no matter how many there are.   Setting
          this  variable, only the most recent max-articles arti-
          cles will be presented, but all the articles will still
          be  marked  as  read.  This is useful to get up-to-date
          quickly if you have not read news for a longer period.

     lines lin (integer, default screen height)
          This variable contains the screen height i.e. number of
          lines.

     long-menu      (boolean, default false)
          If set nn will not put an empty line after  the  header
          line  and  an  empty  line before the prompt line; this
          gives you two extra menu lines.

     macro-debug    (boolean, default false)
          If set nn will  trace  the  execution  of  all  macros.
          Prior  to the execution of each command or operation in
          a macro, it will show the name of the  command  or  the
          input string or key stroke at the bottom of the screen.

     mail file (string, default not set)
          file must be a full path name of a file.   If  defined,
          nn  will  check for arrival of new mail every minute or
          so by looking at the specified file.

     mail-alias-expander program   (string, default not set)
          When  set,  aliases  used  in  mail  responses  may  be
          expanded by the specified program.  The program will be



SunOS 5.5           Last change: Release 6.5                   58






NN(1)                     User Commands                     NN(1)



          given the completed response in  a  file  as  its  only
          argument,  and  the aliases should be expanded directly
          in this file (of course the program may  use  temporary
          files and other means to expand the aliases as long the
          The headers string specifies one or more  extra  header
          lines (separated by semi-colons `;') which are added to
          the header of mail sent from nn  using  the  reply  and
          mail commands.  For example:
               set mail-header Reply-To: storm@texas.dk;Organization: TI - DK
          To include a semicolon `;' in a header, precede it by a
          backslash (which must be doubled because of the conven-
          tions for entering strings).

     mail-record file    (string, default not set)
          file must be a full path name of a file.   If  defined,
          all  replies  and  mail  will  be saved in this file in
          standard mailbox format, i.e. you can use you favourite
          mailer (and nn) to look at the file.

     mail-script file    (string, default not set)
          When set, nn will use the specified file instead of the
          standard  aux  script when executing the reply and mail
          commands.

     mailer shell-command     (string, default REC_MAIL)
          The program which is invoked by nn to deliver a message
          to  the  mail  transport.   The program will be given a
          complete mail message including a header containing the
          recipient's address.  See also mailer-pipe-input.

     mailer-pipe-input        (boolean, default true)
          When set, the message to be sent will be piped into the
          mailer  program.   Otherwise,  the  file containing the
          message will be given as the first (and only)  argument
          to the mailer command.

     marked-by-next-group N   (integer, default 0)
          Specifies the amount of (unmarked) articles on the menu



SunOS 5.5           Last change: Release 6.5                   59






NN(1)                     User Commands                     NN(1)



          marked  seen by the N {next-group} command in selection
          mode.  See marked-by-read-skip for possible  values  of
          N.

               4:  All pages are marked seen

     mark-overlap   (boolean, default false)
          When set, nn will draw  a  line  (using  the  underline
          capabilities  of  the terminal if possible) to indicate
          the end of the overlap (see the overlap variable).

     mark-overlap-shading     (boolean, default false)
          When set, nn will  shade  overlapping  lines  (see  the
          overlap  variable)  using the attributes defined by the
          shading-on and shading-off variables (of  if  not  set,
          with  the underline attribute).  This is typically used
          to give overlapping lines a different colour on  termi-
          nals which have this capability.

     menu-spacing mode   (integer, default 0)
          When mode is a non-zero number as described  below,  nn
          will  add  blank lines between the lines on the menu to
          increase readability at the cost  of  presenting  fewer
          articles  on  each  page.  The following values of mode
          are recognized:
          0: Don't add blank lines between menu lines.
          1: Add a blank line between articles with different subjects.
          2: Add a blank line between all articles.

     merge-report-rate rate   (integer, default 1)
          When nn is invoked with the -m option (directly or  via
          nngrap),  a  status  report  of  the merging process is
          displayed and updated on the screen every rate seconds.
          The  report  contains the time used so far and an esti-
          mate of the time needed to complete the merge.

     message-history N   (integer, default 15)
          Specifies the maximum  number,  N,  of  older  messages



SunOS 5.5           Last change: Release 6.5                   60






NN(1)                     User Commands                     NN(1)



          which can be recalled with the ^P {message} command.

     min-window size     (integer, default 7)
          When the window variable is not set, nn will clear  the
          When set, nn will display the message  of  the  day  on
          start-up  if  it  has  changed since it was last shown.
          The message is taken from the file "motd"  in  the  lib
          directory.   It  can  also  be  shown (again) using the
          :motd command.

     multi-key-guard-time timeout  (integer, default 2)
          When reading a multi-key sequence from the keyboard, nn
          will  expect  the characters constituting the multi-key
          to arrive "quickly" after each other.  When  a  partial
          multi-key  sequence  is  read,  nn will wait (at least)
          timeout tenths of a second for each  of  the  following
          characters   to   arrive   to  complete  the  multi-key
          sequence.  If the multi-key sequence is  not  completed
          within  this period, nn will read the partial multi-key
          sequence as individual characters instead.  This way it
          is  still  possible to use for example the ESC key on a
          terminal with vt100 like arrow keys.  When nn  is  used
          via  an rlogin connection, you may have to increase the
          timeout to get reliable recognition of multi-keys.

     new-group-action action  (integer, default 3)
          This variable controls how new groups  are  treated  by
          nn.   It  is  an  integer  variable,  and the following
          values can be used.  Some of these actions (marked with
          an  *)  will  only  work when keep-unsubscribed is set,
          since the presence of a group in .newsrc  is  the  only
          way to recognize it as an old group:

9 0) Ignore groups which are not in .newsrc. This will

          obviously include new groups.

9 1*) Groups not in .newsrc are considered to be new,

          and are inserted at the beginning of the .newsrc file.

9 2*) Groups not in .newsrc are considered to be new,




SunOS 5.5           Last change: Release 6.5                   61


9


NN(1)                     User Commands                     NN(1)



          and are appended to the end of the .newsrc file.

9 3) New groups are recognized via a time-stamp saved in

          the  file  .nn/LAST and in the database, i.e. it is not
          dependent on the groups currently in .newsrc.  The  new
          groups  are automatically appended to .newsrc with sub-
          scription.  Old groups not present in .newsrc  will  be

     news-header headers (string, default not set)
          The headers string specifies one or more  extra  header
          lines (separated by semi-colons `;') which are added to
          the header of articles posted from nn using the  follow
          and post commands.  See mail-header for an example.

     news-record file    (string, default not set)
          Save file for follow-ups and postings.  Same rules  and
          format as the mail-record variable.

     news-script file    (string, default not set)
          When set, nn will use the specified file instead of the
          standard  aux script when executing the follow and post
          commands.

     newsrc file (string, default "~/.newsrc") Specifies the
          file used by nn to register which groups  and  articles
          have been read.  The default setting corresponds to the
          .newsrc file used by other news readers.   Notice  that
          nn  release  6.4 onwards does allow individual articles
          to be marked unread, and some articles  marked  unread,
          and  thus  no  longer  messes up .newsrc for other news
          readers!

     nntp-cache-dir directory (string, default "~/.nn")
          When NNTP is used, nn  needs  to  store  articles  tem-
          porarily on disk.  This variable specifies which direc-
          tory nn will use to  hold  these  files.   The  default
          value  may be changed during configuration.  This vari-
          able can only be set in the init file.
9


SunOS 5.5           Last change: Release 6.5                   62






NN(1)                     User Commands                     NN(1)



     nntp-cache-size size     (integer, default 10, maximum 10)
          Specifies the number of temporary  files  in  the  nntp
          cache.   The  default and maximum values may be changed
          during configuration.

     nntp-debug     (boolean, default false)
          When set, a  trace  of  the  nntp  related  traffic  is
          displayed in the message line on the screen.
          which headers from the article are included; its  value
          N is the sum of the following values:
               1: Reply-To:
               2: From:
               4: Path:

     overlap lines  (integer, default 2)
          Specifies the number of overlapping lines from one page
          to  the  next when paging through an article in reading
          mode.  The last line from the  previous  page  will  be
          underlined if the terminal has that capability.

     pager shell-command      (string, default $PAGER)
          This is the pager used by the :admin command (and nnad-
          min)  when  it executes certain commands, e.g. grepping
          in the Log file.

     patch-command shell-command   (string, default "patch -p0")
          This is the command which is invoked by the :patch com-
          mand.

     post-distribution words  (string, default see below)
          This variable controls how the Distribution: header  is
          constructed  when  posting  an  original  article.  Its
          value is a list of words selected  from  the  following
          list:

9 [ ask ] [ default | distribution ]

9          This is interpreted in two steps:
          - First the default  distribution  is  determined.   If



SunOS 5.5           Last change: Release 6.5                   63






NN(1)                     User Commands                     NN(1)



          default  is specified (or distribution is omitted), the
          value of default-distribution is used.  Otherwise,  the
          specified  distribution  (any  word)  is  used  as  the
          default.
          - Then if ask is specified, the user will be  asked  to
          confirm  the  default  distribution  or provide another
          distribution.
          The default value of post-distribution is ask  default,
          i.e.  use  the  default-distribution  with confirmation
          action  after  using  continue  on the last page of the
          article, and one for  the  action  performed  when  the
          next-article command is used multiplied by 10.

     preview-mark-read        (boolean, default true)
          When set, previewing an article will mark  the  article
          as read.

     previous-also-read  (boolean, default true)
          When set, going back to the previously read group  with
          P  {previous} will include articles read in the current
          invocation of nn even if there are still  unread  arti-
          cles in the group.

     print-header-lines fields     (string, default "FDGS")
          Specifies the list of header  fields  that  are  output
          when  an  article is printed via the :print command and
          print-header-type is  1  (short  header).   The  fields
          specification  is  desctribed in the section on Custom-
          ized Article Headers below.

     print-header-type N (integer, default 1)
          Specifies what kind of header is printed by the  :print
          command,  corresponding to the three save-* commands: 0
          prints only the article body (no header),  1  prints  a
          short header, and 2 prints the full article header.

     printer shell-command    (string, default is system dep.)
          This is the default value for the  print  command.   It



SunOS 5.5           Last change: Release 6.5                   64






NN(1)                     User Commands                     NN(1)



          should  include  an  option  which prevents the spooler
          from echoing a job-id or similar  to  the  terminal  to
          avoid problems with screen handling (e.g. lp -s on Sys-
          tem V).

     query-signature          (boolean, default ...)
          Will cause nn to require confirmation before  appending
          the  .signature  file  to out-going mail or news if the
          corresponding append-sig-... variable is set.
          Instead it uses the save file specified for the current
          group in the init file or the default save file.

     re-layout N         (integer, default 0)
          Normally on the menu, nn  will  prefix  the  subject  a
          number  of  `>'s  corresponding to the number of refer-
          ences on the References:  line.  The re-layout variable
          may be set to use a different prefix on the subjects:
               0:  One `>' per reference is shown (default).
               1:  A single `>' is shown if the Subject contains Re:.
               2:  The number of references is shown as `n>'
               3:  A single Re: is shown.
               4:  If any references use layout 0, else layout 1.

     re-layout-read N    (integer, default -1)
          When the header-lines variable is not set, or  contains
          the  "*"  field  specifier,  a line similar to the menu
          line will be used as the header of the article in read-
          ing mode, including the sender's name and the article's
          subject.  When this variable is negative,  the  subject
          on  this  header line will be prefixed according to the
          re-layout variable.  Otherwise, it will define the for-
          mat  of  the "Re:" prefix to be used instead of the re-
          layout used on the menu.

     read-return-next-page    (boolean, default false)
          When set, the Z {read-return} command  will  return  to
          the next menu page rather than the current menu page.




SunOS 5.5           Last change: Release 6.5                   65






NN(1)                     User Commands                     NN(1)



     record file    (string, no default)
          Setting this pseudo variable will set  both  the  mail-
          record  and  the news-record variables to the specified
          pathname.

     repeat         (boolean, default false)
          When set, nn  will  not  eliminate  duplicated  subject
          lines on menus (I cannot imagine why anyone should want
          that, but....)
          Specifies the number of seconds to wait  after  posting
          an  article  to  see  whether  the  action *might* have
          failed.  Some commands run in the  background  and  may
          thus  not  have  completed  during this period, so even
          when nn says "Article posted", it may  still  fail  (in
          which case you are informed via mail).

     response-default-answer action     (string, default "send")
          The default action to be taken when hitting  return  to
          the "response action" prompt  (abort, edit, send, view,
          write).  If it is unset, no default action is defined.

     retain-seen-status  (boolean, default false)
          Normally, seen articles will just be  unread  the  next
          time the group is entered (unless they were marked read
          by auto-junk-seen).  If retain-seen-status is set,  the
          seen attribute on the articles will survive to the next
          time the group is entered.  (This  is  not  recommended
          because it may result in very large select files).

     retry-on-error times     (integer, default 0)
          When set, nn will try the specified number of times  to
          open  an article before reporting that the article does
          not exist any more.  This may be necessary in some net-
          work environments.

     save-closed-mode mode    (integer, default 13)
          When saving an  article  in  selection  mode  (i.e.  by
          selecting  it  from  the menu), nn will simply save the



SunOS 5.5           Last change: Release 6.5                   66






NN(1)                     User Commands                     NN(1)



          specified article if the  article's  subject  is  open.
          When  the  selected menu entry is a closed subject, the
          save-closed-mode variable determines how many  articles
          among the closed articles should be saved:
          0: save root article (the one on the menu) only
          1: save selected articles within subject
          2: save unread (excl selected) articles within subject
          3: save selected+unread articles within subject
          4: save all articles within subject
          Normally, file names created with the part.* form  will
          substitute  the * with successive numbers starting from
          one.  Setting this variable will cause these numbers to
          start from N+1.

     save-header-lines fields (string, default "FDNS")
          Specifies the list of header fields that are saved when
          an  article  is  saved  via the O {save-short} command.
          The fields specification is desctribed in  the  section
          on Customized Article Headers below.

     save-report    (boolean, default true)
          When set, a message reporting the number of lines writ-
          ten  is  shown after saving an article.  Since messages
          are shown for a few seconds, this  may  slow  down  the
          saving of many articles (e.g. using the S* command).

     scroll-clear-page        (boolean, default true)
          Determines whether nn clears the screen before  showing
          each new page of an article.

     scroll-last-lines N      (integer, default 0)
          Normally, nn will show each new page of an article from
          the top of the screen (with proper marking of the over-
          lap).  When this variable is set to a  negative  value,
          nn  will scroll the text of the new pages from the bot-
          tom of the screen instead.  If it is set to a  positive
          value,  nn  will  show pages from the top as usual, but
          switch to  scrolling  when  there  are  less  than  the



SunOS 5.5           Last change: Release 6.5                   67






NN(1)                     User Commands                     NN(1)



          specified number of lines left in the article.

     select-leave-next        (boolean, default false)
          When set, you will be asked whether to select  articles
          with  the leave-next attribute on entry to a group with
          left over articles.

     select-on-sender         (boolean, default false)
          Specifies whether  the  find  (=)  command  in  article
                    set shading-on  ^[ [ 3 2 m
                    set shading-off ^[ [ 3 7 m
                    set mark-overlap-shading
                    unset mark-overlap
               end

     shell program  (string, default $SHELL)
          The shell program used to execute shell escapes.

     shell-restrictions  (boolean, default false)
          When set (in the init file), nn will not allow the user
          to  invoke  the  shell  in any way, including saving on
          pipes.  It also prevents the user from changing certain
          variables containing commands.

     show-purpose-mode N      (integer, default 1)
          Normally, nn will show the purpose of a group the first
          time  it is read, provided a purpose is known.  Setting
          this variable, this behaviour can be  changed  as  fol-
          lows:
               0:  Never show the purpose.
               1:  Show the purpose for new groups only.
               2:  Show the purpose for all groups.

     silent         (boolean, default false)
          When set, nn wont print the logo or "No News" if  there
          are no unread articles.  Only useful to set in the init
          file or with the -Q option.
9


SunOS 5.5           Last change: Release 6.5                   68






NN(1)                     User Commands                     NN(1)



     slow-mode      (boolean, default false)
          When set, nn will cut down on the screen output to give
          better  response  time at low speed.  Normally, nn will
          use standout mode (if possible) to mark selected  arti-
          cles  on  the  menu, but when slow-mode is set, nn will
          just put an asterisk `*' next to the article identifier
          on  selected  articles.   Also when slow-mode is set nn
          will avoid redrawing the screen in the following cases:
          After  a goto-group command an empty menu is shown (hit
          space to make it appear), and after  responding  to  an
          articles will be presented in order of arrival.  If not
          set  on entry to a menu for merged groups, the articles
          from each group will be kept together on the menu.   If
          sort  is unset while merged groups are presented on the
          menu, the articles will be reordered by  local  article
          number (which may not keep articles from the same group
          together).

     sort-mode mode (integer, default 1)
          The default sort algorithm used to sort the articles on
          entry   to  a  news  group.   It  is  a  numeric  value
          corresponding to one of the sorting  methods  described
          in connection with the :sort command:
               0 - arrival (ordered by article number)
               1 - subject (subjects ordered after age of first article)
               2 - lexical (subjects in lexicographical order)
               3 - age (articles ordered after posting date only)
               4 - sender (articles ordered after sender's name)

     spell-checker shell-command   (string, default not set)
          When set, responses can be checked  for  spelling  mis-
          takes  via the (i)spell action.  The command to perform
          the spelling is given  the  file  containing  the  full
          article  including header as its only argument.  If the
          spell checker can fix spelling mistakes, it must  apply
          the changes directly to this file.

     split          (boolean, default true)



SunOS 5.5           Last change: Release 6.5                   69






NN(1)                     User Commands                     NN(1)



          When set, digests will automatically  and  silently  be
          split  into  sub-articles  which are then handled tran-
          sparently as normal articles.  Otherwise,  digests  are
          presented as one article (which you can split on demand
          with the G command).

     stop lines     (integer, default not set)
          When stop is set, nn will only  show  the  first  lines
          lines  of  the  of each article before prompting you to
          continue.  This is useful on slow terminals  and  modem
          When set, two subjects will be considered equal if they
          are  identical  up  to  the  first  (differing)  digit.
          Together with the subject-match-offset  variable,  this
          can  be  used  in source groups where the subject often
          has a format like:
9               vXXXXXX: Name of the package (Part 01/04)

9 Setting subject-match-offset to 8 and subject-match-

          parts  to  true will make nn consider all four parts of
          the package  having  the  same  subject  (and  thus  be
          selectable with `*').

9 Notice that changing the subject-match-... variables

          manually will not have an immediate effect.  To reorder
          the menu, an explicit :sort command must be  performed.
          These variables are mainly intended to be set using the
          :local command in on entry macros for source and binary
          groups  (entry  macros are evaluated before the menu is
          collected and sorted).

     subject-match-minimum characters   (integer, default 4)
          When set to a positive number, that many characters  at
          the  beginning  of  the  subject  must match before the
          subject-match-parts option comes into affect.  This  is
          important, because the part matching causes the rest of
          the line to be ignored after the first  digit  pair  is
          discovered.  This begins after any subject-match-offset
          has been applied.
9


SunOS 5.5           Last change: Release 6.5                   70






NN(1)                     User Commands                     NN(1)



     suggest-default-save     (boolean, default true)
          When set, nn will present  the  default-save-file  when
          prompting  for  a  save  file name in a group without a
          specific save file,  or  folder-save-file  when  saving
          from   a  folder.   When  not  set,  no  file  name  is
          presented, and to use the default save file, a single +
          must be specified.

     tidy-newsrc         (boolean, default false)
          When set,  nn  will  automatically  remove  lines  from
          .newsrc  which represent groups not found in the active
          file or unsubscribed groups if keep-unsubscribed is not
          is followed by one of the characters in the list.   For
          example, to switch to or from kanji mode, control codes
          like "esc $" and "esc ( J" may be present in the  text.
          To allow these codes, use the following command:
9               set trusted-escape-codes ($

9 You can also set it to all to pass all espace codes

          through to the screen.  Notice that nn thinks all char-
          acters (including esc) output to the screen  as  occupy
          one column.

     unshar-command shell-command  (string, default "/bin/sh")
          This is the command which is invoked by the unshar com-
          mand.

     unshar-header-file file  (string, default "Unshar.Headers")
          The name of the file in which the  header  and  initial
          text  of  articles unpacked with the :unshar command is
          saved.  Unless the file name starts  with  a  `/',  the
          file  will  be  created  in  the  same directory as the
          unpacked files.  The information is not saved  if  this
          variable  is  not  set.   Setting it to "Unshar.Result"
          will cause the headers and the results from the unpack-
          ing  process  to  be merged in a meaningful way (unless
          mmdf-format is set).




SunOS 5.5           Last change: Release 6.5                   71






NN(1)                     User Commands                     NN(1)



     unsubscribe-mark-read    (boolean, default true)
          When set, unsubscribing to a group  will  automatically
          mark  all current articles read; this is recommended to
          keep the size of .newsrc down.  Otherwise, unread arti-
          cles in the unsubscribe groups are kept in .newsrc.  If
          keep-unsubscribed  is  false,  this  variable  has   no
          effect.

     update-frequency         (integer, default 1)
          Specifies how many changes  need  to  be  done  to  the
          .newsrc or select files before they are written back to
          disk.  The default setting causes .newsrc to be updated
          every time a group has been read.

     visible-bell   (boolean, default true)
          When set, nn will flash the screen instead of  "ringing
          the  bell"  if  the  visible bell (flash) capability is
          defined in the termcap/terminfo database.

     window size    (integer, default not set)
          When set, nn will reserve the last size  lines  of  the
          menu  screen for a preview window.  If not set, nn will
          clear the screen to preview an  article  if  there  are
          less than min-window lines at the bottom of the screen.
          As a side effect, it can also be  used  to  reduce  the
          size  of  the menus, which may be useful on slow termi-
          nals.

     word-key key   (key, default ^W)
          The key which erases the last input component  or  word
          when  nn  is prompting for a string, e.g. the last name
          in a path name.

     wrap-header-margin size  (integer, default 6)
          When set (non-negative), the customized  header  fields
          specified  in header-lines will be split across several
          lines if they don't fit on  one  line.   When  size  is
          greater  than  zero,  lines  will be split at the first



SunOS 5.5           Last change: Release 6.5                   72






NN(1)                     User Commands                     NN(1)



          space occurring in the last size columns of  the  line.
          If  not  set  (or  negative), long header lines will be
          truncated if they don't fit on a single line.


CUSTOMIZED ARTICLE HEADER PRESENTATION

     Normally, nn will just print a  (high-lighted)  single  line
     header  containing  the author, subject, and date (optional)
     of the article when it is read.

     By setting the header-lines variable as described below,  it
     is possible to get a more informative multi line header with
     optional high-lighting and underlining.

             article)
             B    Distribution:
             C    Control:
             D    Date:
             d    Date-Received:
             F    From:
             f    Sender:
             G    Newsgroup:(current group)
             g    Newsgroup:(current  group  if  cross-posted  or
             merged)
             I    Message-Id:
             K    Keywords:
             L    Lines:
             N    Newsgroups:
             n    Newsgroups:   (but only if cross posted)
             O    Organization:
             P    Path:
             R    Reply-To:
             S    Subject:
             v    Save-File:(the default save file for this arti-
             cle)
             W    Followup-To:
             X    References:
             x    Back-References:
             Y    Summary:



SunOS 5.5           Last change: Release 6.5                   73






NN(1)                     User Commands                     NN(1)



     The 'G' and 'g' fields will include the local article number
     if it is known, e.g.
          Newsgroup: news.software.nn/754

     The following special symbols are recognized in the  header-
     lines variable (and ignored otherwise):

     Preceding the identifier with an equal sign "=" or an under-
     score  "_"  will cause the header field contents to be high-
     lighted or underlined.

     A plus sign "+" will use the shading  attribute  defined  by
     shading-on and shading-off to high-light the field contents.
     effect of each option by showing the equivalent set,  unset,
     or toggle command.

     Besides the options described below, you can set any of nn's
     variables  directly  on  the command line via an argument of
     the following format:
9          variable=value
9     To set or unset a boolean variable, the value can be  speci-
     fied as on or off (t and f will also work).

     Notice that the init files are read before the  options  are
     parsed  (unless  you  use  the  - I option).  Therefore, the
     options which are related to boolean variables  set  in  the
     init  file  will toggle the value set there, rather than the
     default value.  Consequently, the meaning of the options are
     also user-defined.

     The explanations below describe the effect  related  to  the
     default  setting of the variables, with the `reverse' effect
     in square brackets.

     -aN   {set limit N}
          Limit the maximum number of articles presented in  each
          group to N. This is useful to get up-to-date quickly if



SunOS 5.5           Last change: Release 6.5                   74


9


NN(1)                     User Commands                     NN(1)



          you have not read news for a longer period.

     -a0   Mark all unread articles as read.  See the full expla-
          nation at the beginning of this manual.

     -B    {toggle backup}
          Do not [do] backup the rc file.

     -d    {toggle split}
          Do not [do] split digests into separate articles.

     -f    {toggle fsort}
          Do not [do]  sort  folders  according  to  the  subject
          (present  the  articles  in a folder in the sequence in
          which they were saved).
          The list is  a  comma-separated  list  of  file  names.
          Names  which  does  not contain a `/' are looked for in
          the ~/.nn directory.  An empty element in the  list  is
          interpreted  as the global init file.  The list of init
          files must not be separated  from  the  - I  option  by
          blanks, and it must be the first option.  Example:  The
          default behaviour corresponds to using  -I,init  (first
          the global file, then the file ~/.nn/init).  The global
          setup file  is  still  read  as  the  first  init  file
          independently of the -I option used.

     -k    {toggle kill}
          Do not [do] perform automatic  kill  and  selection  of
          articles.

     -lN   {set stop N}
          Stop after printing the first N lines of each  article.
          This is useful on slow terminals.

     -L[f] {set layout f}
          Select alternative menu layout f (0 to  4).   If  f  is
          omitted, menu layout 3 is selected.




SunOS 5.5           Last change: Release 6.5                   75






NN(1)                     User Commands                     NN(1)



     -m    {no corresponding variable}
          Merge all articles into one  `meta  group'  instead  of
          showing  them one group at a time.  When -m is used, no
          articles will be marked as read.

     -nWORD
          Collect only articles which contain the string WORD  in
          the  sender's  name  (case is ignored).  If WORD starts
          with a slash `/', the rest of the argument is used as a
          regular expression instead of a fixed string.

     -N    {no corresponding variable}
          Disable updating of the rc  file.   This  includes  not
          recording that groups have been read or unsubscribed to
          (although nn will think so until you quit).
          their subject (case is ignored).  If WORD starts with a
          slash `/', the rest of the argument is used as a  regu-
          lar expression instead of a fixed string.

     -S    {toggle repeat}
          Do not  [do]  eliminate  duplicated  subject  lines  on
          menus.

     -T    {toggle time}
          Do not [do] show the current time in the prompt line.

     -w[N] {set window N}
          Reserve N lines of the menu screen for a  preview  win-
          dow.   If  N is omitted, the preview window is set to 5
          lines.

     -W    {toggle confirm-messages}
          [Don't] Wait for confirmation on all messages.

     -x[N] {set old N}
          Present (or scan) all (or the last N) unread as well as
          read articles.  This will never mark unread articles as
          read.



SunOS 5.5           Last change: Release 6.5                   76






NN(1)                     User Commands                     NN(1)



     -X    {no corresponding variable}
          Read/scan unsubscribed groups also.  Most  useful  when
          looking for a specific subject in all groups, e.g.
             nn -mxX -sSubject all


MACRO DEFINITIONS

     Practically any combination of commands and key strokes  can
     be  defined as a macro which can be bound to a single key in
     menu and/or reading mode.

     The macro definition must specify a sequence of commands and
     key  strokes  as  if  they were typed directly from the key-
     board.  For example, a string specifying a  file  name  must
     follow a save command.  This manual does not give a complete
     specification of all the input required by the various  com-
               body
          end

     The body consists of a sequence of tokens separated by white
     space  (blanks  or  newlines).  However, certain tokens con-
     tinue to the end of the current line.

     The following tokens may occur in the macro body:

     Comments
          Empty lines and text following a # character  (preceded
          by white space) is ignored.

     Command Names
          Any command name listed in the key mapping section  can
          be  included  in  a  macro  causing  that command to be
          invoked when the macro is executed.

     Extended Commands
          All the extended commands which can be executed through
          the  command  command (normally bound to the : key) can
          also be executed  in  a  macro.   An  extended  command
          starts with a colon (:) and continues to the end of the



SunOS 5.5           Last change: Release 6.5                   77






NN(1)                     User Commands                     NN(1)



          current line.  Example:
               :show groups total

     Key Strokes
          A key stroke (which is normally mapped into  a  command
          depending  on  the  current mode) is specified as a key
          name enclosed in single quotes.  Examples (A-key,  left
          arrow key, RETURN key):
               'A'  'left'  '^M'

     Shell Commands
          External commands can be invoked as  part  of  a  macro
          execution.   There are two forms of shell command invo-
          cations available depending on whether  a  command  may
          produce   output  or  require  user  input,  or  it  is
               save-short "+$G"

     Conditionals
          Conditionals may occur anywhere in a  macro;  a  condi-
          tional  is evaluated when the macro is executed, and if
          the condition is false the rest of the current line  is
          ignored.  The following conditionals are available:
               ?menu     True in menu mode
               ?show     True in reading mode
               ?folder   True when looking at a folder
               ?group    True when looking at a news group
               ?yes Query user, true if answer is yes
               ?no  Query user, true if answer is no
          Example (stop macro execution if user rejects  to  con-
          tinue):
               prompt "continue? " ?no break
9          In addition to these conditionals, it  is  possible  to
          test the current value of boolean and integer variables
          using the following form:
               ?variable=value
          This conditional will be true (1) if the variable is an
          integer   variable  whose  current  value  is  the  one



SunOS 5.5           Last change: Release 6.5                   78






NN(1)                     User Commands                     NN(1)



          specified, or (2) if the variable is a boolean variable
          which is either on or off.  Examples:
               ?layout=3 :set layout 1
               ?monitor=on  break
               ?sort=off :sort age

     break
          Terminate macro execution  completely.   This  includes
          nested macros.  Example (stop if looking at a folder):
               ?folder break

     return
          Terminate execution of current macro.  If  the  current
          macro  is  called from another macro, execution of that
          macro continues immediately.

          mation, the user must answer the question as usual - if
          the user confirms the action execution  continues  nor-
          mally;  otherwise the execution of the current macro is
          terminated.  Example (do not create new files):
               save-short "+$L/misc" no

     prompt string
          Print the string in the prompt line (highlighted).  The
          string must be enclosed in double quotes.  Example:
               prompt "Enter recipient name"
          When the macro terminates, the original prompt shown on
          entry  to  the macro will automatically be redrawn.  If
          this is not desirable (e.g.  if  the  macro  goes  from
          selection to reading mode), the redrawing of the prompt
          can be disabled by using a prompt command with an empty
          string ("").  Example:
               prompt "Enter reading mode?" # old prompt is saved
               ?no return # and old prompt is restored
               read-skip       # changes the prompt
               prompt "" # so forget old prompt

     echo string



SunOS 5.5           Last change: Release 6.5                   79






NN(1)                     User Commands                     NN(1)



          Display the string in  the  prompt  line  for  a  short
          period.  Example:
               ?show echo "Cannot be used in reading mode" break

     puts string-to-end-of-line
          The rest of the line is output directly to the terminal
          without interpretation.

     macro M
          Invoke macro number M.  The maximum macro nesting level
          is five (also catches macro loops).

     I use the following macro to quickly save all  the  selected
     files  in  a  file  whose name is entered as usual.  It also
     works in reading mode (saving just the current article).
          define 1

     the :map command.

     The binding and mapping  of  keys  are  controlled  by  four
     tables:

     The multikey definition table
          This table  is  used  for  mapping  multicharacter  key
          sequences into single characters.  By default the table
          contains the mappings for the  four  cursor  keys,  and
          there is room for 10 user-defined multikeys.  The four-
          teen multikeys are named:  up, down, right,  left  (the
          four  arrow  keys),  and  #0  through  #9 for the user-
          defined keys.

9 Multikey #i (where i is a digit or an arrow key name)

          is defined using the following command:

9 map #i key-sequence

9          where the sequence is a list of 7-bit  character  names
          (see  below)  separated by spaces.  For example, if the
          HOME key sends the sequence ESC [  H,  you  can  define
          multikey #0 to be the home key using the command:
9


SunOS 5.5           Last change: Release 6.5                   80






NN(1)                     User Commands                     NN(1)



               map #0 ^[ [ H

     The input key mapping table
          All characters that are read from the keyboard will  be
          mapped  through the input mapping table.  Consequently,
          you can globally remap one key to produce any other key
          value.  By default all keys are mapped into themselves.
9          An entry in the input key mapping table to  map  input-
          key into new-key is made with the command

9 map key input-key new-key


9 For example, to make your ESC key function as interrupt

          you can use the command
9               map key ^[ ^G

     The selection mode key binding table
          This table defines for each key which command should be
          invoked  when  that  key  is pressed in selection mode,
          i.e. when the article menu is shown.   The  command  to

     The reading mode key binding table
          This table defines for each key which command should be
          invoked  when that key is pressed in reading mode, i.e.
          when the article text is shown.  The command to bind  a
          key to a command in reading mode is:

9 map show key command


     In addition to the direct mappings described above, the fol-
     lowing variations of the map command are available:

     User defined keymaps
          Additional keymaps can be defined using the command

9 make map newmap

9


SunOS 5.5           Last change: Release 6.5                   81






NN(1)                     User Commands                     NN(1)



          This will create a new  keymap  which  can  initialized
          using normal map commands, e.g.

9 map newmap key command

9          To activate a user-defined keymap, it must be bound  to
          a prefix key:

9 map base-map prefix-key prefix newmap

9          When used, the prefix key itself does  not  activate  a
          command,  but  instead  it  require  another  key to be
          entered and then execute the command bound to that  key
          in the keymap which is bound to the prefix key.
            For example, to let the key sequence "^X  i"  execute
          macro  number  10 in both modes, the following commands
          can be used:
9               make map ctl-x
               map ctl-x i macro 10
               map both ^X prefix ctl-x

     Mapping keys in both modes
          Using the pseudo-keymap `both', it is possible to map a
          key  to a command in both selection and reading mode at
          once.  For example, to map the home key to macro number
          5 in both modes, the following command can be used:
9               map both #0 macro 5

          nection with the map command:

9 map keymap key (

               body...
               )

     Keys and character names are specified using  the  following
     notation:

     C    A single printable  character  represents  the  key  or
          character itself.



SunOS 5.5           Last change: Release 6.5                   82


9


NN(1)                     User Commands                     NN(1)



     ^C   This notation represents a control  key  or  character.
          DEL is written as ^?

     125, 0175, 0x7D
          Characters and keys can be specified by  their  ordinal
          value in decimal, octal, and hexadecimal notation.

     up, down, right, left
          These names represent the cursor keys.

     #0  through  #9
          These symbols represent the ten user-defined multikeys.

     If the variable data-bits is 7, key maps can specify binding
     of  all keys in the range 0x00 to 0x7F, and the 8th bit will
     be stripped in all keyboard input.  If  the  variable  data-
     bits  is  8,  the  8th  bit is not cleared, and key maps are
     extended to allow binding of keys in the range 0xA0 to  0xFE
     (corresponding to the national characters defined by the ISO
     8859 character sets).  Binding commands to these keys can be
     done either by using their numeric value, or directly speci-
     fying the 8 bit character in the map command, e.g.
9          map menu 0xC8 macro 72
          map key e %

     To show the current contents of the four tables, the follow-
     ing versions of the :map command are available:

     :map Show the current mode's key bindings.
     Below is a list of all the commands that  can  be  bound  to
     keys,  either  in  selection mode, in reading mode, or both.
     For each command the default command key  bindings  in  both
     modes  are  shown.   If  the  key is not bound in one of the
     modes, but it can be bound, the corresponding part will just
     be  empty.   If  the  command  cannot be bound in one of the
     modes, that mode will contain the word nix.

9


SunOS 5.5           Last change: Release 6.5                   83






NN(1)                     User Commands                     NN(1)



             Function             Selection mode   Reading mode
             advance-article      nix              a
             advance-group        A                A
             article N            a-z0-9           nix
             back-article         nix              b
             back-group           B                B
             cancel               C                C
             command              :                :
             compress             nix              c
             continue             space            space
             continue-no-mark     return           nix
             decode
             find                 =                /
             find-next            nix              .
             follow               F                fF
             full-digest          nix              H
             goto-group           G                G
             goto-menu            nix              = Z
             help                 ?                ?
             junk-articles        J                nix
             kill-select          K                K
             layout               "                nix
             leave-article        nix              l
             leave-next           L                L
             line+1               ,  down          return
             line-1               /                nix
             line=@               nix              g
             macro M
             mail                 M                m M
             message              ^P               ^P
             post
             preview              %                %
             previous             P                p
             print                                 P
             quit                 Q                Q
             read-return          Z                nix
             read-skip            X                X
             redraw               ^L ^R            ^L ^R



SunOS 5.5           Last change: Release 6.5                   84






NN(1)                     User Commands                     NN(1)



             reply                R                r R
             rot13                nix              D
             save-body            W                w W
             save-full            S                s S
             save-short           O                o O
             select               .                nix
             select-auto          +                nix
             select-invert        @                nix
             select-range         -                nix
             select-subject       *                *
             shell                !                !
             skip-lines           nix              tab
             unselect-all         ~                nix
             unshar
             unsub                U                U
             version              V                V

     See the descriptions of the default bindings for a  descrip-
     tion  of  the  commands.   The pseudo command nil is used to
     unbind a key.


THE INIT FILES

     The init files are used to customize nn's behaviour to local
     conventions and restrictions and to satisfy each user's per-
     sonal taste.
     Normally, nn reads upto three init files on start-up if they
     exist (all init files are optional):

     $LIB/setup
          A system-wide file located in  the  library  directory.

     The init file is parsed one line at a time.  If a line  ends
     with a backslash `\', the backslash is ignored, and the fol-
     lowing line is appended to the current line.

     The init file may contain the following  types  of  commands
     (and data):

     Comments



SunOS 5.5           Last change: Release 6.5                   85






NN(1)                     User Commands                     NN(1)



          Empty lines and lines with a # character as  the  first
          non-blank  character  are  ignored.  Except where # has
          another meaning defined by  the  command  syntax  (e.g.
          multi-keys  are  named  #n), trailing comments on input
          lines are ignored.

     Variable settings
          You can set (or unset) all the variables described ear-
          lier to change nn's behaviour permanently.  The set and
          unset commands you  can  use  in  the  init  file  have
          exactly the same format as the :set and :unset commands
          described earlier (except that the :  prefix  is  omit-
          ted.)

9 Variables can also be locked via the lock command; this

          is  typically  done  in the setup file to enforce local
          policies.

     Key mappings
          You can use all the versions of the map command in  the
          init file.

     Macro Definitions
          You can define sequences of commands  and  key  strokes
          using  the define...end construction, which can then be
          bound to single keys with the map command.

     Load terminal specific files
          You can load a terminal specific file using the

9 load file


9 The character @ in the file will be replaced by the

          command:

9 chain file

9          If this occur in the private or global init  file,  the
          chained  init  file  may  contain a sequence part which
          will  replace  the  private  or   global   presentation
          sequence respectively.



SunOS 5.5           Last change: Release 6.5                   86


9


NN(1)                     User Commands                     NN(1)



     Stop loading current init file
          You can skip the rest of the current init file with the
          following command:

9 stop


     Give error messages and/or terminate
          If an error is detected in the init file, the following
          commands  can  be used to print an error message and/or
          terminate execution:

9 error fatal error message...

               Print the message and terminate execution.

9 echo warning message...

               Print the message and continue.

9 exit [ status ]

               Terminate nn with the specified exit status  or  0
          if omitted.

     Change working directory of nn
          You can use the cd command to change the working direc-
          tory whenever you enter nn.  Example:
               # Use folder directory as working directory inside nn
               cd ~/News

     Command groups
          The init file can contain groups of commands which  are
          executed  under special conditions.  The command groups
          are described in the section on command groups below.

     One or more save-files sections
          A save-files section is used  to  assign  default  save
          files to specific groups:

9 save-files

                 group-name (pattern) file-name

          ues to the end of the init file.




SunOS 5.5           Last change: Release 6.5                   87






NN(1)                     User Commands                     NN(1)



     Both init files may contain  a  presentation  sequence.   In
     this  case,  the  global sequence is appended to the private
     sequence.


COMMAND GROUPS

     Command groups may only occur in the  init  file,  and  they
     provide a way to have series of commands executed at certain
     points during news reading.

     In release 6.4 onwards, these possibilities are still rather
     rudimentary,  and  a  mixture of normal init file syntax and
     macro syntax is used depending on whether the command  group
     is  only executed on start-up or several times during the nn
     session.

     A command group begins with the word on and  ends  with  the
     word  end.   The  following command groups are conditionally
     executed during the parsing of the init file if  the  speci-
     fied condition is true.  They may also have an optional else
     part which is executed if the condition is false:

9 on condition

               commands
          [ else
               commands ]
          end

     The following conditional command groups may be used in  the
     init file to be executed at start-up:

     on [ test ]
          The commands (init file syntax) in the group  are  exe-
          cuted  only  if the specified test is true.  A shell is
          spawned to execute the command "[ test ]", so  all  the
          options of the test(1) command is available.  For exam-
          ple, to unset the flow-control variable if the tty is a
          pseudo-tty, the following conditional can be used:
               end
9


SunOS 5.5           Last change: Release 6.5                   88






NN(1)                     User Commands                     NN(1)



     on `shell command` string...
          The command group is executed if the first output  line
          from  executing  the  specified shell command is listed
          among the specified string values.  The  shell  command
          can be omitted on subsequent occurrences of this condi-
          tional, in which case the output from  the  last  shell
          command  is  used.   For  example, the following condi-
          tional can be used to switch to an init file which  has
          a  limited  sequence  for  news  reading during working
          hours, evenings, and nights:
               on `date +%H` 9 10 11 12 13 14 15 16
                    chain init.work
               end
               on `` 17 18 19 20 21
                    chain init.evening
               else
                    chain init.night
               end

     on `` string...
          This is equivalent to the  previous  form  except  that
          instead  of  executing a shell command, the output from
          the previous

     on $variable [ value ]
          If no value strings are specified, the command group is
          executed  if  the  given  variable  is  defined  in the
          environment.  Otherwise, the command group is  executed
          only  if  the  value of the variable occur in the value
          list.  For example, if you want nn to look for mail  in
          whatever  $MAIL  is set to - if it is set - you can use
          the following code:
               on $MAIL
                    set mail $(MAIL)
               end

     on slow
                    set window 10



SunOS 5.5           Last change: Release 6.5                   89


9


NN(1)                     User Commands                     NN(1)



               end

     on fast
          Same as on slow except that the commands are only  exe-
          cuted when the terminal is running at a speed above the
          slow-speed value.

     on term term-type...
          The commands are executed if one of the term-type names
          is identical to value of the TERM environment variable.

     on host host-name...
          The commands are executed  if  the  local  host's  name
          occur in the host-name list.

     on program program-name...
          The commands are executed if the current  program  (nn,
          nncheck, etc) in the program-name list.

     The following on command groups are really macros which  may
     be  executed during nn's normal processing, and as such they
     cannot have an else part.

     on entry [ group list ]
          These commands (macro format!) are executed every  time
          nn  enters a news group.  If a group list is not speci-
          fied, the commands are associated with all groups which
          don't  have  its own entry macro specified in the group
          sequence.  Otherwise, the entry macro will  be  associ-
          ated  with  the  groups in the list.  The group list is
          specified using the  meta-notations  described  in  the
          presentation sequence section.
9          All `:' commands at the beginning of the command  group
          are  executed  before  nn  collects the articles in the
          group, so it is possible to set or unset variables like
          cross-post  and  auto-read-mode before any articles are
          collected and the menu is (not) shown.
            The non-`:' commands, and `:' commands that follows a


SunOS 5.5           Last change: Release 6.5                   90






NN(1)                     User Commands                     NN(1)



          However, postponed  commands  (i.e.  non-`:'  commands)
          will not be executed until the first group is shown (it
          works like an entry macro).


GROUP PRESENTATION SEQUENCE

     News groups are normally presented in the  sequence  defined
     in the system-wide init file in nn's library directory.

     You can personalize the presentation sequence by  specifying
     an  alternative  sequence  in  the  private  init file.  The
     sequence in the private init file is used before the  global
     presentation sequence, and need only describe the deviations
     from the default presentation sequence.

     The presentation sequence must start with the word
          sequence
     followed by a list of the news group names in the order  you
     want  them  to  be  presented.   The  group  names  must  be
     separated by white space.  The sequence  list  must  be  the
     last part of the init file (the parsing of commands from the
     init file stops when the word sequence is encountered).

     You may use a full group name like "comp.unix.questions", or
     just  the  name  of a main group or subgroup, e.g. "comp" or
     "comp.unix".      However,      if      "comp"      precedes
     "comp.unix.questions"  in  the  list,  this subgroup will be
     placed in the normal alphabetic sequence during the  collec-
     tion of all the "comp" groups.

     Groups which are not explicitly  mentioned  in  any  of  the
     sequence  files  will  be placed after the mentioned groups,
     unless `!!' is  used  and  it  has  not  been  disabled  (as
     described below).

     Each group name may be followed by a  file  or  folder  name
     (must  start  with  either  of  `/'  `~'  or `+') which will
     specify the default save file for that group (and  its  sub-
     groups).  A single `+' following the group name is an abbre-
     viation for the last save file name used.  For example,  the


SunOS 5.5           Last change: Release 6.5                   91






NN(1)                     User Commands                     NN(1)



     commands).

     The entry action begins with a left parenthesis `(' and ends
     with a right parenthesis `)' on an otherwise empty line:
9          comp.sources. +src/$L/ (
               :set cross-post
          )
9     The last entry action can be repeated by specifying an empty
     set of parenthesis, e.g.
9          comp.unix. +unix ()
9     The entry action of a preceding group in the sequence can be
     associated  with the current group(s) by specifying the name
     of the group in the parentheses  instead  of  the  commands,
     e.g.
9          comp.unix. +unix (comp.sources.unix)
9     A macro can also be associated  with  the  entry  action  by
     specifying  its  number  in  the  same way as the group name
     above, e.g.
9          rec.music. +music (30)
9     Notice that it is the current definition of the macro  which
     is associated with the group, so if the macro is later rede-
     fined with the `:define'  command,  it  will  not  have  any
     effect on the entry action.

     Group names can be specified using the following notations:

     group.name
          Append the group (if it  exists)  to  the  presentation
          sequence list.  If also-subgroups is set (default), all
          subscribed subgroups of the group will be  included  as
          well   (if   there   are   any).    Examples:   "comp",
          "comp.unix", "comp.unix.questions".  If the group  does
          not   exits  (e.g.   "comp"),  the  subgroups  will  be
          included even when  also-subgroups  is  not  set,  i.e.
          "comp" is equivalent to "comp.".

     group.name.
          Append the subgroups of  the  specified  group  to  the
          presentation sequence.  The group itself (if it exists)





NN(1)                     User Commands                     NN(1)



     The following meta notation can be used in a sequence  file.
     The  group.name  can  be  specified  using  any of the forms
     described above:

     ! groups
          Completely ignore the group or groups specified  unless
          they are already in the presentation sequence (i.e. has
          been explicitly mentioned earlier in the sequence).

     !:code groups
          Ignore a selection of groups based on  the  given  code
          letter (see below), unless they are already included in
          the sequence.  Notice that these  forms  only  excludes
          groups from the presentation sequence, i.e. they do not
          include the remaining groups at this point;  that  must
          be done explicitly elsewhere.

     !:U groups
          Ignore unsubscribed groups, i.e. if  they  are  neither
          new,  nor  present  and subscribed in .newsrc.  This is
          useful to ignore a whole hierarchy  except  for  a  few
          groups  which  are  explicitly mentioned in .newsrc and
          still see new groups as they are created.

     !:X groups
          Ignore unsubscribed and new groups, i.e.  if  they  are
          not  currently present and subscribed in .newsrc.  This
          is useful to ignore a whole hierarchy except for a  few
          groups  which are explicitly mentioned in .newsrc.  New
          groups in the hierarchy are ignored unless `NEW' occurs
          earlier in the sequence.

     !:O groups
          Ignore old groups, i.e. unless they are new.   This  is
          useful  to  ignore  a whole hierarchy but still see new
          groups which are created in  the  hierarchy  (it  might
          become  interesting  some  day).  Individual groups can
          still be included in the sequence if they are specified
          before the `!:O' entry.

     !:N groups
          Ignore new groups in the hierarchy.






NN(1)                     User Commands                     NN(1)



     RC   This is a pseudo group name which  matches  all  groups
          occurring  in  the  .newsrc  file.   It  will cause the
          groups in .newsrc to be appended  to  the  presentation
          sequence  in  the  sequence in which they are listed in
          .newsrc.

     RC:number
          Similar to the RC  entry,  but  limited  to  the  first
          number  lines of the .newsrc file.  Example: RC:10 (use
          10 lines of .newsrc).

     RC:string
          Similar to the RC entry, but limited to the lines up to
          (and  including)  the  first line (i.e. group) starting
          with the given string.  For example:  RC:alt.sources

     < group.name
          Place the group (and its subgroups) at the beginning of
          the  presentation sequence.  Notice that each `<' entry
          will place the group(s) at the beginning of the current
          sequence, i.e. < A < B < C will generate the sequence C
          B A.

     > group.name
          Place the group (and its  subgroups)  after  all  other
          groups  that are and will be entered into the presenta-
          tion sequence.

     @    Disable the `!!' command.  This can be included in  the
          personal  presentation  sequence if the global sequence
          file contains a !! entry (see example 1 below).

     % .... %
          Starts and ends a region of the sequence  where  it  is
          possible  to  include  groups which has been eliminated
          earlier.  This may be useful to alter the  sequence  of
          some  groups, e.g. to place comp.sources.bugs after all
          other source groups,  the  following  sequence  can  be
          used:
9          ! comp.sources.bugs comp.sources* % comp.sources.bugs %

     Example 1: In a company where  ordinary  users  only  should
     read  the  local news groups, and ignore the rest (including




NN(1)                     User Commands                     NN(1)



     The "expert" users in the company must  put  the  @  command
     somewhere  in  their  private  sequence to avoid losing news
     groups which they have not  explicitly  mentioned  in  their
     init file.

     Example 2: This is the  global  sequence  for  systems  with
     heavy news addicts who setup their own sequences anyway.
9          # all must read the general news first
          < general
9          # test is test, and junk is junk,
          # so it is placed at the very end
          > test
          > .test
          > junk
9          # this is the standard sequence which everybody may
          # change to their own liking
          local     # our local groups
          dk   # the Danish groups
          eunet.general # to present it before eunet.followup
          eunet     # the other European groups
          comp # the serious groups
          news # news on news
          sci  # other serious groups
          rec  # not really that important (don't quote me)
          misc # well, it must be somewhere
9          # the groups that are not listed above goes here
9     Notice the use of comments in the sequence  where  they  are
     allowed at the end of non-empty lines as well.

     Example 3: My own presentation sequence (in the  init  file)
     simply  lists  my  favourite  groups  and  the corresponding
     default save files:

9 sequence

          !:U alt*  # ignore unsubscribed alt groups
          news.software.nn +nn
          comp.sys.ti* +ti/$L
          NEW  # show new groups here
          news*
          rec.music.synth +synth/
          comp.emacs*,gnu.emacs +emacs/misc
          comp.risks +risks
          eunet.sources +src/unix/
          comp.sources* +src/$L/
9     The presentation sequence is not used when nn is called with
NN(1)                     User Commands                     NN(1)




MERGING NEWS GROUPS

     The third example above contains the following line:
9          comp.emacs*,gnu.emacs +emacs/misc
9     This is the syntax used to merge groups.  When two  or  more
     groups  are  merged,  all  new  articles in these groups are
     presented together as if they  were  one  group.   To  merge
     groups, their names must be listed together in the sequence,
     and only separated by a single comma.  To merge  the  groups
     resulting  from  a  single group pattern (e.g. comp.emacs*),
     the group pattern must be followed by a comma  and  a  blank
     (e.g. comp.emacs*, ...).

     Merged groups are  presented  as  the  first  group  in  the
     "list",  and the word "MERGED" will be shown after the group
     name.  The Y  {overview}  command  will  still  show  merged
     groups as individual groups, but they will be annotated with
     the symbol `&' on the first of the groups, and a `+' on  the
     rest of the groups.

     In the current version, the concept of the current group  in
     connection  with  merged groups is a bit fuzzy.  This should
     only be noticeable with the G command, which will  take  the
     most  recently  used  group  among  the merged groups as the
     current group.  So things like G = ... may not  always  work
     as expected.


ENVIRONMENT

     The following environment variables are used by nn:

     EDITOR.  The editor invoked when  editing  replies,  follow-
     ups,  and composing mail.  nn knows about the following edi-
     tors:  vi, ded, GNU emacs, and micro-emacs, and will try  to
     position  the cursor on the first line following the header,
     i.e. after the blank line which must not be deleted!  If  an
     article has been included, the cursor is placed on the first
     line of the included text (to allow you to  delete  sections
     easily).

     LOGNAME.  This is taken as the login  name  of  the  current
     user.  It is used by nn to return failed mail.  If it is not
     defined, nn will use the value of USER, or if  that  is  not
     defined  either, nn will use the call `who am i' to get this
     information.  If all  attempts  fail,  the  failed  mail  is
     dropped in the bit bucket.

     PAGER.  This is used as the initial value of the pager vari-
     able.




     TERM.  The terminal type.


FILES

     ~/.newsrc         The record of read articles.
     ~/.nn/select      The record of selected and seen articles.
     ~/.nn/init        Personal  configuration  and  presentation
     sequence.
     ~/.nn/kill        The automatic kills and selections.
     ~/.nn/KILL.COMP   The compiled kill file.
     ~/.nn/LAST        The time stamp of the last news  group  we
     have seen.
     ~/.nn/NEXTG       Active group last time nn was quit.
     ~/.nn/.param      Parameter file for the aux script
     $lib/setup        System-wide setup - always read first.
     $lib/init         System-wide   setup    and    presentation
     sequence.
     $lib/aux          The response edit and send script.
     $lib/routes       Mapping rules for mail addresses (on  non-
     domain systems).
     $db/*             The news data base.
     /etc/termcap      Terminal data base [BSD].
     /usr/lib/terminfo/*Terminal data base [SysV].
     /usr/lib/nntp-serverName of remote nntp server.
9     The name $lib and $db are the directories used for the auxi-
     liary files and the news data base respectively.  Their name
     and location is defined at compile time.  Common choices are
     /usr/local/lib/nn   or   /usr/lib/news/nn   for   $lib   and
     /usr/spool/nn or /usr/spool/news/.nn for $db.


SEE ALSO

     Other netnews documentation.
     RFC 1341, MIME (Multipurpose Internet Mail Extensions)
     nncheck(1), nngoback(1),  nngrab(1),  nngrep(1),  nnpost(1),
     nntidy(1)
     nnadmin(1M), nnusage(1M), nnmaster(8), nnspew(8)


AUTHOR

     Kim F. Storm, Texas Instruments A/S, Denmark
     E-mail: storm@texas.dk  (but see the addresses below)

     The NNTP support was designed and implemented by Rene  Sein-
     dal,  Institute  of Datalogy, University of Copenhagen, Den-
     mark.

     Bugs and fixes, suggestions, ideas, critique,  etc.  can  be
     sent to the following address:
          nn-bugs@dkuug.dk

     The news.software.nn group is used  for  discussion  on  all