2.9BSD/usr/contrib/notes/doc/2


.ch "Using Notesfiles"

	The notesfile system is invoked with a single command line.
Most notesfile commands require only a single character (like the vi editor).
Those that do require more than one character are terminated by a carriage
return.

.se "Invocation"

	Invoke the notesfile system with:

	notes [ -sxi ] [ -t termtype ] [ -f nfile ] [ topic1 ] [ topic2 ... ]

The topic list (e.g., topic1) specifies the notesfiles to read.
Invoking the notes system with NO arguments causes the program to
look for a file called '.notesrc' in your home directory, and
if it exists, effectively does 'notes -f ~/.notesrc'.
When more than one topic is specified, the user encounters each topic
sequentially (i.e., topic2 is entered upon completion of topic1).

	The -s switch activates the "notesfile sequencer" which is discussed
in section 2.7.
Specify  "-x" to use the extended sequencer.
The "-i" flag selects yet another sequencing mode.

	The -t option directs the notesfile system to use  "termtype" as the user's
terminal type, overriding the TERM shell variable.

	The -f option directs the notesfile system to read the contents
of the file "nfile" for a list of notesfiles to read.
See section 2.3 ("The -f Option")
for more information on the format of this file.

.se "Notesfile Names and Wildcards"

	The notesfile system supports pattern matching for names in
the same manner as the shell.
By using the shell meta-characters "*", "?", "[" and "]", the user
can specify a number of notesfiles with a single entry.
To read all the notesfiles that pertain to
unix, enter the following
line (the quotes are required to protect the asterisks from interpretation
by the shell):

	notes "*unix*"

	There are several ways to read the notesfiles
test1, test2, test3 and test4:

	notes test1 test2 test3 test4

	notes "test?"

	notes "test[1234]"

	This feature is available from the normal entry (notes) and the
automatic sequencer entry (see section 2.7);
it is also available to
the network transmission
and statistics programs.

.se "The -f Option"

	The "-f" option of the notesfile system
specifies a file of notesfile names to read.
The file consists of lines containing notesfile names:

.ne 4
.nf
	nfgripes
	net.unix-wizards
	net.bob*
	net.general
	fa.telecom
	ucbcad.*
	!ucbcad.test
	!net.bob
.fi

The names start at the left margin; they are indented here
for readibility.
The sequencer mode can be changed
by inserting a line of the form:

	-s

	Again, this starts at the left margin.
The "s" can be any of: "s", "x", "i", or "n".
When a line of this form is read from the file, the sequencer mode
is set to the corresponding mode: The normal "s"equencer,
the e"x"tended sequencer,
the "i"ndex sequencer,
and
"n"o sequencer.

	To always enter nfgripes, micronotes, and bicycle
while only entering the networked notesfiles "net.*" when new notes
are present, one might use "notes -f myfile"
with the following "myfile":

.ne 6
.nf
	-x
	nfgripes
	micronotes
	bicycle
	-s
	net.*
	!net.misc
.fi


.se "General"

	Almost all notesfile commands require exactly one character
(no carriage return).  Only commands that are longer than one character
require a terminating carriage return (currently, choosing a note to read
is the only non-single character command).

	The commands were chosen to be easy to remember.
Upper case forms of commands usually function
like their lower case counterparts but with some additional
feature or power (i.e., "w" writes a response, "W" includes the current
displayed text in the response).

	Some commands are available almost everywhere in the notesfile
system.  These include those for help, exiting, forking a shell,
and making a comment for the suggestion box.

.ss "Help"

	Typing "?" anywhere will list the available options in
an abbreviated format.

.ss "Exiting"

	Type "q" ("quit") to leave the current notesfile.
Capital "Q"
leaves the current notesfile and refrains from entering your
last entry time into the sequencer table (see section "The Sequencer").
The notesfile system
proceeds to the next topic in the invocation list.  Use control-D ("signoff")
to leave the notesfile system completely (without updating
entry time information).

	The "k" and "K" keys function exactly as "q" and "Q".
	The "z" key updates your sequencer table and exits the program.

.ss "Shells"

	Fork a shell at any time by typing "!"
(just like many other Unix programs).

.ss "Comments and Suggestions"

	Type capital "B" ("suggestion Box")
while on the index page or reading notes
to make a comment or suggestion about the notesfile program.
Your suggestion will be stored in another
notesfile reviewed frequently by the notesfile system manager.

.se "The Index Page"

	When the notes system is invoked without the -s option,
the user sees an index
of the most recent notes.
A sample page is shown below:

.KS
.nf
.in +10
Workstation Discussion                     2:03 pm  Jan 4, 1982

12/9/81  2 Stanford SUN                 4 horton
         3*WICAT 68000                    kolstad
         4 M68000                       1 horton
         5 Dolphin                      3 duke!johnson
12/10    6 CDC Standalone               1 smith
         8 IBM Personal Computer          henry
         9 Personal computers harmful?  8 Anonymous
        10 Ethernet interfaces 3 mhz?  23 essick
        11 Requirements for uiucdcs    10 botten
1/1/82  12 Happy New Year!              5 mjk


          - - - - - - - - - - - - -

.in
.fi
.KE
	The upper left corner shows the notesfile's title.  In this
example, the notesfile discusses personal workstations.
The current time and date are displayed in the upper right corner.
Ten note titles are displayed (if available).  Each note is displayed
with its date (if different from the previous date), note number,
title, number of responses (if any), and author.  The first note above
was written by user "horton" on December 9th.  It is titled "Stanford
SUN" and has four responses.  Note 7 has been deleted for some reason
(by either its author or a notesfile director).  Note 5 was written
by user "johnson" whose signon resides on the "duke" system.
Note 9 was written by an author who preferred to remain unidentified.
Notes with director messages (sometimes denoting importance) are displayed
with a "*" next to the note number (see note 3 above).

	From the index page the user may:

.br
.bx
.ix
Scroll the index forward or backward.
.ix
Read a note.
.ix
Write a note.
.ix
Go to the next unread note.
.ix
Search for notes or responses after a specific date/time.
.ix
Search for keywords within notes' titles.
.ix
Search for notes/responses by a specific author.
.ix
Go to another notesfile.
.ix
Read the policy note.
.ix
Register a complaint/suggestion about notesfiles.
.ix
Fork a shell.
.ix
Exit the notes program.
.ix
Invoke notesfile director options (if the user is a director).
.ix
Check whether the group is networked and if anonymous submissions can be made.
.ix
Unsubscribe from the notes group.
.ex

.ss "Scrolling the Index Page"

	Scroll the index page by:

.nf
.ls 1
	+	forward one page
	*	forward to the most recent page (* is multiple +'s)
	-	backward one page
	=	backward all the way (= is multiple -'s)
	<return> forward one page 
	<space> forward one page 
.br
.ls
.fi

.ss "Choosing Notes and Responses"

	While on the index page, choose a note to read by typing its number
followed by a carriage return.
(This is the only command that requires a carriage return after it.)
Usually the space bar is used to scan text.
To skip to a special note or response, use the features below.

	While reading a note, ";" or "+"
advances to the
first response of the note.
The next note is displayed if there are no responses.
The number keys ("1", "2", ... , "9") advance that many
responses.
If there are fewer responses, the last response is displayed.
The return key skips the responses and goes to the next note.
Press "-" or backspace to see the previous page of the current note;
if the page currently displayed is the first, the notesfile program
displays the first page of the previous note.

	While a response is on the screen, the ";" and "+" keys
display the next response.
As with reading a note, if there are no further responses these
keys advance to the next note.
The number keys ("1", ... , "9") will advance the appropriate number
of responses.
If there are fewer responses, the last response is displayed.
The "-" or backspace keys display the previous page of the current
response. If the current page is the first page of the response,
these keys display the first page of the previous response.
Enter "=" to see the base note of the current note string.
Press the return key to proceed to the next note.

.se "Notes and Responses"

.ss "Reading Notes"

	After selecting a note from the index page (or entering the
notesfile with your "sequencer" on), the note is displayed.  A sample
display is shown below:

.KS
.nf
Note 15                   Workstation Discussion                2 responses
horton                         WICAT 150              4:03 pm  Dec 11, 1981

Wicat System 150

8 MHz 68000, Mem. mgmt, Multibus architecture, 256k to 1.5 Mb RAM
16/32/64Kbyte EPROM,

10 ms interval timer, 2 RS232 (19.6k async, 56k sync), 16 bit parallel
intelligent disk controller 
10 Mbyte winchester (5.25", 3600 rpm, access: 3 ms trk-trk, 70 avg, 150 max),
960Kb floppy (5.25", 300 rpm, access 10 ms trk-trk, 267 avg, 583 max)

Options: battery backed clock, graphics with touch panel, video disk control,
High Speed Serial Network Interface

Unix/V7 avail, Pascal, C, APL, ADA, Cobol, Fortran, Lisp, Basic, Asm

                ======================================
.fi
.KE

	This is note number 15 in the "Workstation Discussion" file.
User "horton" wrote this note at 4:03 pm on December 11th, 1981.  Two
responses have been written.  The note's title is "WICAT 150".  If a
director had written the note, the "director message" might have been
displayed beneath the note's title.  Director's notes sometimes contain
important information or new policies.

	Notes and responses can be up to 65535 bytes long (2^32 bytes
in 4.1c BSD), 
much more than can be displayed in a single screen.
The display routine pages text automatically.
For all but the last page of a long note or response,
the lower right corner of the display  shows the percentage of the
note that has been shown.
For all but the first page of long text, the message "[Continued]"
appears in the upper left portion of the display.
Use the space bar to see the next page of a long note or response.
When the last page is displayed, the space key functions as the ";" 
key: it proceeds to the next response.
The "-" and backspace keys back up the display to the previous page.
Only the first 10 pages of text are managed this way; typing "-" from
the eleventh page on will return to the tenth page.
The "r" ("replot") key  goes back to the first page of the note.

	While reading a note, it is possible to:

.br
.bx
.ix
Display the next page of the note.
.ix
Display the first page of the note.
.ix
Write a response to the displayed note.
.ix
Read next note or previous note.
.ix
Read next unread response or note.
.ix
Return to the index page.
.ix
Skip to a given response.
.ix
Delete the note (if you are its author or a file director).
.ix
Edit the note's title (if it is yours).
.ix
Edit the note (if it is yours and there are no responses).
.ix
Copy the note to another notesfile.
.ix
Save the note in your file space.
.ix
Mail the note to someone.
.ix
Talk ("write") to the author of the note.
.ix
Search for keywords in note titles.
.ix
Search for notes/responses by a particular author.
.ix
Toggle the director message (if privileged).
.ix
Fork a shell.
.ix
Go to another notesfile.
.ix
Make a comment or suggestion about notesfiles.
.ix
Exit the notesfile program.
.ix
Unsubscribe from the notes group.
.ex

.ss "Reading Responses"

	Response displays are similar to those of main notes with the exception that
"Response x of y" replaces the note's title.
The first response to note 15 is shown below:

.KS
.nf
Note 15                   Workstation Discussion                
koehler                      Response 1 of 2         11:53 pm  Dec 11, 1981

Does anyone have any insight about the relative speeds of the Winchester
disks available on these systems?  The previous disk seems to have
track to track response times commensurate with reasonably fast 8"
floppies.  I wonder if some of the manufacturers are using disks that
will not meet reasonable specifications for response time for these
kinds of applications.

On the other hand, with intelligent layout of file sectors, the I/O system
could romp and stomp on often used files...

                ======================================
.fi
.KE

	The commands for manipulating the text of a long response
are the same as those for looking at long notes.
Typing space will move to the next page.
Typing "-" or backspace will display the previous page, within the
same limitations as for reading notes (only 10 pages are kept).
Press "r" ("replot") to go back to the first page of the text.

	The options available while reading responses include:

.bx
.ix
Display the next page of the response.
.ix
Display the first page of the response.
.ix
Go to a different response (usually the next one).
.ix
Go to the next unread note/response.
.ix
Reread the base note.
.ix
Reread the previous note.
.ix
Return to the index page.
.ix
Copy the response to another notesfile.
.ix
Mail the response to someone.
.ix
Save the response in your file space.
.ix
Talk to the response's author.
.ix
Write another response to the note.
.ix
Search for keywords in note titles.
.ix
Search for notes/responses by particular authors.
.ix
Delete the response (if you are its author or a file director).
.ix
Edit the response (if it is yours and there are no later responses).
.ix
Fork a shell
.ix
Go to another notesfile.
.ix
Register a suggestion or complaint about the notesfile program.
.ix
Exit the notesfile program.
.ix
Unsubscribe from the notes group.
.ex


.ss "Writing Notes and Responses"

	Write new base notes by hitting "w" while reading the index page.
The notesfile system will then invoke an editor
(the default editor is
"ed", use either of the shell variables NFED or EDITOR to change it).
After the prompt,
type the insert command along with the text you wish to enter.
Write the text to the disk and leave the editor.  The system will prompt
you for various options if they are available:  anonymity, director
message status, and the note's title.

	To write a response to a note type "w" while that note or any of
its responses is displayed. 
The same steps used to write a base note
should then be followed.

.ss "Mailing Notesfile Text"

	Both notes and responses can be mailed to other users (with
optional appended text).
The capital "M" ("mail") command gives you the opportunity to edit the text then send
it to anyone.  Its inferior counterpart, "m", allows you to mail a message to
anyone.
To mail to the author of the text,
use capital "P" ("Personal comment") to send the text
and your comments; use "p" for a simple letter.

	To use a specific mail program, set the environment variable
MAILER. If this is not set, the standard mail program is used.

.ss "Forwarding Text To Other Notesfiles"

	Capital "C" ("copy") prompts for a destination notesfile then
allows editing of the note text before it is copied to the other notesfile.
Lower case "c" sends a note without the current displayed text (i.e.,
allows you to write a comment in a different notesfile).
The forwarded text can be entered as either a new note or as a response
to an existing note.
In the latter case, an index page is given to the user so that he may 
choose the appropriate note to which he wishes to respond.

.ss "Saving Text in Local Files"

	The "s" ("save") command appends the current displayed text to a
file of your choice (which is created if not present).
Notesfiles prompts for the file name;
typing only a carriage return aborts the command -- no text is saved.
Capital "S" appends
the base note and all its responses.

.ss "Piping Text through Commands"

	The "|" command pipes the current text through a command.
The "^" command pipes the base note and all of its responses through
a command.  The "%" command pipes the current text through a decrypter
(rotation 13).

.ss "Deletion"

	Capital "D" ("delete") deletes a note or response if it is yours and
has no subsequent responses.  Notes already sent to the network can not be
deleted by non-directors.
Directors can delete any note or response with the "Z" ("zap") command.

.ss "Online Communication"

	Typing "t" ("talk") attempts to page the author of the current displayed
text.  The Unix "write" command to him/her is issued
if the author is local and non-anonymous.

	If the environment variable WRITE is defined,
the program it specifies is used to write to the author.

.ss "Editing Note Titles"

	While reading a base note, type "e" ("edit") to
change the note's title
(provided you are the author of the note or a notesfile director).

.ss "Editing Notes/Responses"

	"E" allows editing of the text of a note or response.
It is impossible to edit an article if it has subsequent responses or
if it has been sent to the network.
If the "later responses" are deleted, it is possible to edit the
original text.

.se "Other Commands"

.ss "Returning to the Index Page"

	Type "i" ("index") while reading notes or responses
to return to the index page.

.ss "Searching Titles for Keywords"

	Notesfiles can search backwards for keywords appearing in note titles.
Typing "x" ("x is the unknown title") prompts for the substring to be found.
Searching begins
at the current note (or from the last note shown on the index page)
and proceeds towards note 1.
Upper/lower case information is ignored in the search.
Use upper case "X" to continue the search.
The search can be aborted by hitting the RUBOUT (or DELETE) key.

.ss "Searching for Authors"

	The "a" command searches backwards for notes or responses written by
a specific author.
Notesfiles prompts for the authors name. 
The "A" command continues the search  backwards.
The author name may be preceded by an optional `system!'.
If no system is specified, local authorship is assumed.
Abort the search by hitting the RUBOUT (or DELETE) key.

.ss "Stacking Notesfiles"

	Sometimes it is useful to be able to 
glance at another notesfile while reading notes.
Using "n", the user can save (stack) his current place and peruse
another notesfile.

	When on the index page or while reading notes/responses,
type "n" ("nest")
to read another notesfile.
Notesfiles prompts for the notesfile to read.
If the notesfile exists, the place is marked in the old notesfile
and the new one's index is displayed.

	Type any of the standard keys to leave the nested notesfile.
Both "q" and "Q" leave the nested notesfile
and return to the previously stacked notesfile.
Control-d ("signoff") and "z" causes the notesfile program to exit regardless
of the depth of nesting.

	Sequencing is turned off in the new notesfile
regardless of its state in the old notesfile.
The depth of the stack of notesfiles is limited only by the 
amount of memory available to the user.

.ss "Policy Note"

	A notesfile director can write an optional policy note to describe
the purpose of a notesfile.
Read the policy note by typing "p" ("policy") from the index page.

.se "The Sequencer"

	Most users prefer to scan notesfiles and see only those notes written
since their last reading.
The notesfile "sequencer" provides this capability.
It is activated by the "-s" option ("sequencer") on the
command line.
When the sequencer is activated, the notesfile system automatically remembers
the last time the user read notes in each notesfile.
Subsequent entries to the
notesfile can use the "last time" information to show only new notes and
responses.
If there is nothing new in a notesfile, 
the sequencer proceeds to the next notesfile specified in the command line.

	The normal sequencer does not give the user a chance to read
the notesfile if there are no new notes or responses;
sometimes it is desirable to be able to do so.
Use the "-x" option
to enable the sequencer and enter the  notesfile 
even if there are no new notes.

	No keys need be pressed if there are no new notes in the entire list
and the normal ("-s") sequencer mode is selected.
With the extended ("-x") sequencer,
the user must type "q", "Q", or control-d
for each notesfile regardless of whether
there are new notes.

	The "-i" mode of sequencing is similar to the "-s" mode. 
Using the "-i" mode, notesfiles with no new entries are passed over.
The user is placed on the index page of notesfiles which contain new
notesfiles.

.ss "Seeing New Notes and Responses"

	The sequencer always shows the base note of a
modified note string,
whether or not is has been shown before,
in order to establish the context of the new response(s).
The "j" command skips to the next modified text (note or response).

	If the rest of a particular note string seems uninteresting,
skip to the next modified note string with the "J" ("big Jump")
command.
This skips any new responses on the current note string.
It is common to follow in detail only a few note strings and
skip others with the "J" command.

	When no more new notes or responses exist, both the 
"j" and "J" commands will take the user to the index page.

	Two other commands useful with the sequencer are "l" and
"L".  "l" works much like "j" in that only modified note strings
are displayed.  However unlike "j", "l" will display all continuation
pages of the note before proceeding to the next note string.
Also, upon visiting the last page of the last modified note string,
"l" will cause an exit with update.  "L", analogous to "J",
jumps to the next modified base note or exits if there are no
new notes.

	To modify the "last entry" time (used for searches),
use the "o" ("oldest notes to read")
command.
This command modifies the "last entry" time for the current notesfile.
The "o", "j", and "J" commands 
function whether the sequencer is on or off
but never change the sequencer's memory of the last entry time.
When the sequencer is off, the "last entry" time is set to January 1,
1970.

	To exit the notesfile, use the "q" command.
Exiting with "q" will update the user's
"last entry" time.
Exiting with capital "Q" will NOT modify the 
"last entry" time
(neither will control-D).
Another possibility is to exit with "z".  This
forces an immediate exit like control-D but in
addition updates the sequencing information.

.ss "Automatic Sequencing"

	An alternate entry to the notes program
allows the user to invoke notes with the sequencer enabled and a list
of notesfiles to be scanned with a single,
simple
command.
The "autoseq" command is invoked by typing

	autoseq

This is equivalent to typing "notes -s" or using the "-s" sequencing
mode; the user only enters notesfiles which have new text.
By typing "-x" or "-i" on the command line, the user can
specify other sequencing modes as well.

.se "Environment Variables"

	The notesfile program reads several environment variables to
tailor the system to the user's preferences.
Below is a list of the variables,
their purpose,
and
their default values.

.bx
.ix
"NFED" specifies which editor will be invoked when the user writes a
note or response. 
If this variable is not specified, the notesfile system looks for
the environment variable "EDITOR" (which many other programs use).
If neither "NFED" nor "EDITOR" are defined, a default editor is
used (/bin/ed).
.ix 
"PAGER" is the paging program ("more", "pg") which is used for scrolling
the help files.
The default paging program is /usr/ucb/more.
.ix
"MAILER" determines the mail program to use. If undefined, this defaults
to /usr/ucb/mail.
.ix
"WRITE" is used to specify the program for communication between users.
If undefined, the Unix program "write" is used.
.ix
"TERM" determines the type of terminal in use. This must be set
for notes to know what screen addressing conventions to use. In most
cases the value will be correctly initialized by the system at login
time.
.ix 
"SHELL" specifies which shell the user is running.
This will almost always be set by the operating system.
.ex