BSD 4_3_Tahoe development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Tue, 27 Aug 1985 02:39:54 +0000 (18:39 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Tue, 27 Aug 1985 02:39:54 +0000 (18:39 -0800)
Work on file usr/src/new/B/doc/QuickRef

Synthesized-from: CSRG/cd2/4.3tahoe

usr/src/new/B/doc/QuickRef [new file with mode: 0644]

diff --git a/usr/src/new/B/doc/QuickRef b/usr/src/new/B/doc/QuickRef
new file mode 100644 (file)
index 0000000..be4d6f8
--- /dev/null
@@ -0,0 +1,685 @@
+.\" Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985.
+.so bfont.def
+.pl 0
+.ll 18c
+.nh
+.wh -.3c fo
+.de fo \"page footer
+'bp
+.pl 35c
+.po 0
+.lt 21c
+.tl '.''.'
+.po 1.5c
+.sp 2
+.ns
+..
+.ds B \fIB\fP
+.ds BB \fI\zB\h'3u'B\fP
+.de HE \"Heading
+.sp 0.9v
+.ne 1.7v
+\fB\\$1\fP \\$2
+.sp .4v
+.ns
+..
+.de IT
+.sp .4v
+.JT
+..
+.de JT
+.ti 0
+..
+.de TA
+.br
+.sp -1
+.ti 0
+       
+..
+.fo
+.rs
+.sp 2
+.ta 20n
+.ps 16
+       \*(BB\fB\ \|QUICK REFERENCE\fP
+.ps 10
+.sp 0.5
+.ta 30n
+.HE "GETTING STARTED"
+.IT
+\*(<:b\*(:>
+.TA
+Enter \*B system
+.JT
+\*(<:b -e\*(:>
+.TA
+Enter \*B system, using editor \fI$EDITOR\fP (default \fIvi\fP)
+.JT
+\*(<:b \*(:>\|\fIfile\fP .\^.\^.
+.TA
+Execute \*B commands in named files, and \*(<:QUIT\*(:>
+.JT
+\*(<:b -p\*(:>
+.TA
+Print all units in workspace on printer; do not enter \*B system
+.JT
+\*(<:b -l\*(:>
+.TA
+Print (list) all units on screen; do not enter \*B system
+.JT
+\*(<:b -i \*(:>\fItable\fP
+.TA
+Create a table of texts from the standard input
+.JT
+\*(<:b -o \*(:>\fItable\fP
+.TA
+Write a table of texts to the standard output
+.HE "WHAT IS IN THE WORKSPACE ?" " (only as immediate commands)"
+.IT
+\*(<:==\*(:>
+.TA
+Display tags of current permanent targets
+.JT
+\*(<:::\*(:>
+.TA
+Display headings of current units
+.HE "HOW TO MAKE CHANGES"
+.IT
+\*(<::\*(:>\fIunit-name\fP\0
+.TA
+Make changes to unit (default: unit last referred to)
+.JT
+\*(<:=\*(:>\fItarget-name\fP
+.TA
+Make changes to contents of target (last so changed)
+.HE "Focus moves"
+.ta 15n +20n
+.de KK \"Key(s) that preceeding name of editing operation is bound to
+.br
+.sp -1
+.ti 0
+       
+..
+.de KY \"Key in box
+'ps -2
+'nh
+\v'-\\n(.su/2u'\(br\v'\\n(.su/2u'\|\s-1\\$1\s+1\|\v'-\\n(.su/2u'\(br\v'\\n(.su/2u'\\h'-\\w'|'u/2u'\l'|0+(\\w'|'u/2u)\(rn'\\h'-\\w'|'u/2u'\l'|0\(ul'
+'hy
+'ps +2
+..
+.de OR
+\&\ or\ 
+..
+.de DD \"Description of editing operation
+.br
+.sp -1
+.ti 0
+               
+..
+.IT
+WIDEN
+.KK
+.KY f1
+.OR
+.KY ESC
+.KY w
+.DD
+Widen focus
+.JT
+FIRST
+.KK
+.KY f2
+.OR
+.KY ESC
+.KY f
+.DD
+Move focus to first contained item
+.JT
+LAST
+.KK
+.KY f3
+.OR
+.KY ESC
+.KY l
+.DD
+Move focus to last contained item
+.JT
+EXTEND
+.KK
+.KY f4
+.OR
+.KY ESC
+.KY e
+.DD
+Extend focus (usually to the right)
+.JT
+UPLINE
+.KK
+.KY f5
+.OR
+.KY ESC
+.KY u
+.DD
+Move focus to whole of line above
+.JT
+PREVIOUS
+.KK
+.KY f6
+.OR
+.KY ESC
+.KY p
+.DD
+Move focus to previous item
+.JT
+NEXT
+.KK
+.KY f7
+.OR
+.KY ESC
+.KY n
+.DD
+Move focus to next item
+.JT
+DOWNLINE
+.KK
+.KY f8
+.OR
+.KY ESC
+.KY d
+.DD
+Move focus to whole of line below
+.JT
+UP
+.KK
+.KY \(ua
+.DD
+Make new hole, move focus up
+.JT
+DOWN
+.KK
+.KY \(da
+.DD
+Make new hole, move focus down
+.JT
+LEFT
+.KK
+.KY \(<-
+.DD
+Make new hole, move focus left
+.JT
+RIGHT
+.KK
+.KY \(->
+.DD
+Make new hole, move focus right
+.HE "Typing and making changes"
+.IT
+\fIAny character\fP
+.DD
+Insert character before focus
+.JT
+ACCEPT
+.KK
+.KY TAB
+.DD
+Accept suggestion, focus to next hole or end of line
+.JT
+RETURN
+.KK
+.KY RETURN
+.DD
+Go to new line, or decrease indentation
+.JT
+UNDO
+.KK
+.KY BACKSPACE
+.DD
+Undo effect of last key pressed (may be repeated)
+.JT
+REDO
+.KK
+.KY ctrl-U
+.DD
+Redo last UNDOne key (may be repeated)
+.JT
+DELETE
+.KK
+.KY ctrl-D
+.DD
+Delete contents of focus (to buffer)
+.JT
+COPY
+.KK
+.KY ctrl-C
+.DD
+Copy contents of focus to buffer, or buffer to hole
+.HE "Other commands"
+.IT
+RECORD
+.KK
+.KY ctrl-R
+.DD
+Start/stop recording keystrokes
+.JT
+PLAY
+.KK
+.KY ctrl-P
+.DD
+Play back recorded keystrokes
+.JT
+LOOK
+.KK
+.KY ctrl-L
+.DD
+Redisplay screen
+.JT
+HELP
+.KK
+.KY ESC
+.KY ?
+.DD
+Display summary of keys
+.JT
+EXIT
+.KK
+.KY ctrl-X
+.DD
+Finish changes or execute command
+.JT
+\fIInterrupt\fP
+.KK
+.KY BREAK
+.OR
+.KY DEL
+.DD
+Leave incomplete unit or interrupt command execution
+.bp
+.rs
+.sp 2c
+.ta 35n +5n
+.HE "COMMANDS" " (\fItlt\fP is text, list or table)"
+.IT
+\*(<:WRITE\*(:> \fIexpr\fP\0
+.TA
+Write to terminal; \*(<:/\*(:> before or after \fIexpr\fP gives new line
+.JT
+\*(<:READ\*(:> \fItarget\fP \*(<:EG\*(:> \fIexpr\fP\0
+.TA
+Read expression from terminal to \fItarget\fP; \fIexpr\fP is example
+.JT
+\*(<:READ\*(:> \fItarget\fP \*(<:RAW\*(:>\0
+.TA
+Read line of text
+.JT
+\*(<:PUT\*(:> \fIexpr\fP \*(<:IN\*(:> \fItarget\fP
+.TA
+Put value of \fIexpr\fP in \fItarget\fP
+.JT
+\*(<:DRAW\*(:> \fItarget\fP\0
+.TA
+Random number from \*(<:~0\*(:> up to, but not including, \*(<:~1\*(:>
+.JT
+\*(<:CHOOSE\*(:> \fItarget\fP \*(<:FROM\*(:> \fItlt\fP\0
+.TA
+Random element of \fItlt\fP
+.JT
+\*(<:SET'RANDOM\*(:> \fIexpr\fP\0
+.TA
+Start random sequence for \*(<:DRAW\*(:> and \*(<:CHOOSE\*(:>
+.JT
+\*(<:REMOVE\*(:> \fIexpr\fP \*(<:FROM\*(:> \fIlist\fP\0
+.TA
+Remove one element from \fIlist\fP
+.JT
+\*(<:INSERT\*(:> \fIexpr\fP \*(<:IN\*(:> \fIlist\fP\0
+.TA
+Insert in right place
+.JT
+\*(<:DELETE\*(:> \fItarget\fP\0
+.TA
+Delete permanent target or table entry
+.JT
+\fIKEYWORD param KEYWORD\fP .\^.\^.
+.TA
+Execute user-defined command
+.JT
+\fIKEYWORD\fP
+.TA
+Execute refined command
+.JT
+\*(<:CHECK\*(:> \fItest\fP\0
+.TA
+Check \fItest\fP and stop if it fails
+.JT
+\*(<:IF\*(:> \fItest\fP\*(<::\*(:> \fIcommands\fP
+.TA
+If \fItest\fP succeeds, execute \fIcommands\fP; no \*(<:ELSE\*(:> allowed
+.JT
+\*(<:SELECT:\*(:>
+.TA
+Select one alternative:
+.JT
+\*(<:    \*(:>\fItest\fP\*(<::\*(:> \fIcommands\fP
+.TA
+\&     try each \fItest\fP in order
+.JT
+\*(<:    \*(:>.\^.\^.
+.TA
+\&     (one must succeed;
+.JT
+\*(<:    \*(:>\fItest\fP\*(<::\*(:> \fIcommands\fP\0
+.TA
+\&     the last \fItest\fP may be \*(<:ELSE\*(:>)
+.JT
+\*(<:WHILE\*(:> \fItest\fP\*(<::\*(:> \fIcommands\fP
+.TA
+Execute \fIcommands\fP, as long as \fItest\fP succeeds
+.JT
+\*(<:FOR\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:IN\*(:> \fItlt\fP\*(<::\*(:> \fIcommands\fP\0
+.TA
+Take each element of \fItlt\fP in turn
+.HE "UNITS"
+.IT
+\*(<:HOW'TO\*(:> \fIKEYWORD\fP\ .\^.\^.\*(<::\*(:> \fIcommands\fP\0
+.TA
+Define new command \fIKEYWORD\fP\ .\^.\^.
+.JT
+\*(<:YIELD\*(:> \fIf\fP\*(<::\*(:> \fIcommands\fP\0
+.TA
+Define new function \fIf\fP with no arguments
+.JT
+\*(<:YIELD\*(:> \fIf x\fP\*(<::\*(:> \fIcommands\fP\0
+.TA
+Define new function \fIf\fP with one argument \fIx\fP
+.JT
+\*(<:YIELD\*(:> \fIx f y\fP\*(<::\*(:> \fIcommands\fP\0
+.TA
+Define new function \fIf\fP with two arguments \fIx\fP and \fIy\fP
+.JT
+\*(<:TEST\*(:> \fIpr\fP\*(<::\*(:> \fIcommands\fP\0
+.TA
+Define new predicate \fIpr\fP (succeeds/fails) with no arguments
+.JT
+\*(<:TEST\*(:> \fIpr x\fP\*(<::\*(:> \fIcommands\fP\0
+.TA
+Define new predicate \fIpr\fP with one argument \fIx\fP
+.JT
+\*(<:TEST\*(:> \fIx pr y\fP\*(<::\*(:> \fIcommands\fP\0
+.TA
+Define new predicate \fIpr\fP with two arguments \fIx\fP and \fIy\fP
+.IT
+\*(<:SHARE\*(:> \fItag\fP\*(<:,\*(:>.\^.\^.
+.TA
+Share permanent targets (before commands of unit)
+.HE "Refinements" "(after the commands of a unit)"
+.IT
+\fIKEYWORD\fP \*(<::\*(:> \fIcommands\fP\0
+.TA
+Define command refinement
+.JT
+\fItag\fP\*(<::\*(:> \fIcommands\fP\0
+.TA
+Define expression or test refinement
+.HE "Terminating commands" ""
+.IT
+\*(<:QUIT\*(:>\0
+.TA
+Leave \*(<:HOW'TO\*(:> or command refinement, or leave \*B
+.JT
+\*(<:RETURN\*(:> \fIexpr\fP\0
+.TA
+Leave \*(<:YIELD\*(:> or expression refinement and return value of \fIexpr\fP
+.JT
+\*(<:REPORT\*(:> \fItest\fP\0
+.TA
+Leave \*(<:TEST\*(:> or test refinement and report outcome of \fItest\fP
+.JT
+\*(<:SUCCEED\*(:>\0
+.TA
+The same, report success
+.JT
+\*(<:FAIL\*(:>\0
+.TA
+The same, report failure
+.bp
+.rs
+.sp 2c
+.HE "EXPRESSIONS AND TARGETS" ""
+.IT
+\*(<:666\*(:>, \*(<:3.14\*(:>\0
+.TA
+Exact constant
+.IT
+\*(<:2.93E8\*(:>,\  \*(<:3E+8\*(:>,\  \*(<:3.14E-9\*(:>\0
+.TA
+Approximate constant
+.IT
+\fIexpr\fP\*(<:,\*(:>\fIexpr\fP\*(<:,\*(:>\^.\^.\^.\0
+.TA
+Compound
+.IT
+\fItag\fP\*(<:,\*(:>\fItag\fP\*(<:,\*(:>\^.\^.\^.\0
+.TA
+Identifier (may also be used as target)
+.IT
+\fItext\fP\|\*(<:@\*(:>\|\fIp\fP\0
+.TA
+\&\*(<:"ABCD"@2 = "BCD"\*(:>
+.\"Trimmed text, from \fIp\fP-th character on (also target)
+.IT
+\fItext\fP\*(<:|\*(:>\fIq\fP\0
+.TA
+\&\*(<:"ABCD"|3 = "ABC"\*(:>
+.\"The same, first \fIq\fP characters (also target)
+.IT
+\fItext\fP\|\*(<:@\*(:>\|\fIp\fP\*(<:|\*(:>\fIq\fP\0
+.TA
+\&\*(<:"ABCD"@2|1 = "BCD"|1 = "B"\*(:>
+.\"The same, from \fIp\fP-th on, first \fIq\fP characters (also target)
+.IT
+\fItable\fP\*(<:[\*(:>\fIexpr\fP\*(<:]\*(:>\0
+.TA
+Table selection (also target)
+.IT
+\&\*(<:"Jan"\*(:>,\  \*(<:"Feb"\*(:>,\  \*(<:"Won't!"\*(:>\0
+.TA
+Textual displays (empty: \*(<:""\*(:> or \*(<:''\*(:>)
+.IT
+\&\*(<:"value\ =\ `expr`;"\*(:>\0
+.TA
+Conversion of \*(<:expr\*(:> to text
+.IT
+\*(<:{1;\ 2;\ 2;\*(:>\ .\^.\^.\^\*(<:}\*(:>\0
+.TA
+List display (empty: \*(<:{}\*(:>)
+.IT
+\*(<:{1..10}\*(:>,\  \*(<:{'a'..'z'}\*(:>\0
+.TA
+List of consecutive values
+.IT
+\*(<:{['Jan']: 1; ['Feb']: 2; \*(:>.\^.\^.\^\*(<:}\*(:>\0
+.TA
+Table display (empty: \*(<:{}\*(:>)
+.IT
+\fIf\fP,\  \fIf x\fP,\  \fIx f y\fP\0
+.TA
+Result of \*(<:YIELD\*(:> \fIf\fP (no permanent effects)
+.IT
+\fItag\fP\0
+.TA
+Result of refinement (no permanent effects)
+.HE "TESTS" ""
+.IT
+\fIx\fP \*(<:<\*(:> \fIy\fP,\  \fIx\fP \*(<:<=\*(:> \fIy\fP,\  \fIx\fP \*(<:>=\*(:> \fIy\fP,\  \fIx\fP \*(<:>\*(:> \fIy\fP\0
+.TA
+Order tests
+.IT
+\fIx\fP \*(<:=\*(:> \fIy\fP,\  \fIx\fP \*(<:<>\*(:> \fIy\fP
+.TA
+\&     (\*(<:<>\*(:> means `not equals';
+.IT
+\&\*(<:0\ <=\ d\ <\ 10\*(:>\0
+.TA
+\&     an exact number \fInever\fP equals an approximate one)
+.IT
+\fIpr\fP,\  \fIpr x\fP,\  \fIx pr y\fP\0
+.TA
+Result of \*(<:TEST\*(:> \fIpr\fP (no permanent effects)
+.IT
+\fItag\fP\0
+.TA
+Result of refinement (no permanent effects)
+.IT
+\fItest\fP\ \*(<:AND\*(:>\ \fItest\fP\ \*(<:AND\*(:>\ .\^.\^.\0
+.TA
+Fails as soon as one of the tests fails
+.IT
+\fItest\fP\ \*(<:OR\*(:>\ \fItest\fP\ \*(<:OR\*(:>\ .\^.\^.\0
+.TA
+Succeeds as soon as one of the tests succeeds
+.IT
+\*(<:NOT\*(:>\ \fItest\fP
+.IT
+\*(<:SOME\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:IN\*(:> \fItlt\fP \*(<:HAS\*(:> \fItest\fP\0
+.TA
+Sets \fItag\fP, .\^.\^. on success
+.IT
+\*(<:EACH\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:IN\*(:> \fItlt\fP \*(<:HAS\*(:> \fItest\fP\0
+.TA
+Sets \fItag\fP, .\^.\^. on failure
+.IT
+\*(<:NO\ \ \*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:IN\*(:> \fItlt\fP \*(<:HAS\*(:> \fItest\fP\0
+.TA
+Sets \fItag\fP, .\^.\^. on failure
+.IT
+\*(<:SOME\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:PARSING\*(:> \fItext\fP \*(<:HAS\*(:> \fItest\fP\0
+.TA
+Sets \fItag\fP, .\^.\^. on success
+.IT
+\*(<:EACH\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:PARSING\*(:> \fItext\fP \*(<:HAS\*(:> \fItest\fP\0
+.TA
+Sets \fItag\fP, .\^.\^. on failure
+.IT
+\*(<:NO\ \ \*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:PARSING\*(:> \fItext\fP \*(<:HAS\*(:> \fItest\fP\0
+.TA
+Sets \fItag\fP, .\^.\^. on failure
+.bp
+.rs
+.sp 2c
+.HE "PREDEFINED FUNCTIONS AND PREDICATES"
+\fBFunctions on numbers\fP
+.IT
+\&\*(<:~\*(:>\fIx\fP\0
+.TA
+Approximate value of \fIx\fP
+.IT
+\*(<:+\*(:>\fIx\fP,\  \fIx\fP\*(<:+\*(:>\fIy\fP,\  \fIx\fP\*(<:-\*(:>\fIy\fP,\  \*(<:-\*(:>\fIx\fP,\  \fIx\fP\*(<:*\*(:>\fIy\fP,\  \fIx\fP\*(<:/\*(:>\fIy\fP
+.IT
+\fIx\fP\*(<:**\*(:>\fIy\fP\0
+.TA
+\fIx\fP raised to the power \fIy\fP
+.IT
+\fIn\fP\ \*(<:root\*(:>\ \fIx\fP,\  \*(<:root\*(:>\ \fIx\fP,\  \*(<:abs\*(:>\ \fIx\fP,\  \*(<:sign\*(:>\ \fIx\fP
+.IT
+\fIn\fP\ \*(<:round\*(:>\ \fIx\fP\0
+.TA
+\fIx\fP rounded to \fIn\fP digits after decimal point
+.IT
+\*(<:round\*(:>\ \fIx\fP,\ \*(<:floor\*(:>\ \fIx\fP,\  \*(<:ceiling\*(:>\ \fIx\fP
+.TA
+Rounded to whole number
+.IT
+\fIa\fP\ \*(<:mod\*(:>\ \fIn\fP\0
+.TA
+Remainder of \fIa\fP on division by \fIn\fP
+.IT
+\*(<:*/\*(:>\fIx\fP\0
+.TA
+Numerator of exact number \fIx\fP
+.IT
+\*(<:/*\*(:>\fIx\fP\0
+.TA
+Denominator
+.IT
+.in 0
+\&\*(<:e\*(:>,\  \*(<:exp\*(:>\ \fIx\fP,\  \*(<:log\*(:>\ \fIx\fP,\  \fIb\fP\ \*(<:log\*(:>\ \fIx\fP
+.IT
+\*(<:pi\*(:>,\ \*(<:sin\*(:>\ \fIx\fP,\  \*(<:cos\*(:>\ \fIx\fP,\  \*(<:tan\*(:>\ \fIx\fP
+.IT
+\fIx\fP\ \*(<:atan\*(:>\ \fIy\fP,\  \*(<:atan\*(:>\ \fIx\fP
+.HE "Functions on texts"
+.IT
+\fIt\fP\*(<:^\*(:>\fIu\fP\0
+.TA
+\fIt\fP and \fIu\fP joined into one text
+.IT
+\fIt\fP\*(<:^^\*(:>\fIn\fP\0
+.TA
+\fIt\fP repeated \fIn\fP times
+.IT
+\fIx\fP\*(<:<<\*(:>\fIn\fP\0
+.TA
+\fIx\fP converted\ to\ text\ and\ aligned\ left\ in\ field\ of\ width\ \fIn\fP
+.IT
+\fIx\fP\*(<:><\*(:>\fIn\fP\0
+.TA
+The same,\ centered
+.IT
+\fIx\fP\*(<:>>\*(:>\fIn\fP\0
+.TA
+The same, aligned right
+.HE "Functions and predicates on texts, lists and tables"
+.IT
+\*(<:keys\*(:> \fItable\fP
+.TA
+List of all keys in \fItable\fP
+.IT
+\*(<:#\*(:>\fItlt\fP\0
+.TA
+Number of elements in \fItlt\fP
+.IT
+\fIe\fP\*(<:#\*(:>\fItlt\fP\0
+.TA
+Number of elements equal to \fIe\fP
+.IT
+\fIe\fP \*(<:in\*(:> \fItlt\fP,\  \fIe\fP \*(<:not'in\*(:> \fItlt\fP
+.TA
+Test for presence or absence
+.IT
+\*(<:min\*(:> \fItlt\fP\0
+.TA
+Smallest element of \fItlt\fP
+.IT
+\fIe\fP \*(<:min\*(:> \fItlt\fP\0
+.TA
+Smallest element larger than \fIe\fP
+.IT
+\*(<:max\*(:> \fItlt\fP,\  \fIe\fP \*(<:max\*(:> \fItlt\fP
+.TA
+Largest element
+.IT
+\fIn\fP \*(<:th'of\*(:> \fItlt\fP\0
+.TA
+\fIn\fP-th element
+.HE "THE CHARACTERS"
+.IT
+\*(<: !"#$%&'()*+,-./\*(:>
+.TA
+This is the order of all characters
+.JT
+\*(<:0123456789:;<=>?\*(:>
+.TA
+that may occur in a text.
+.JT
+\*(<:@ABCDEFGHIJKLMNO\*(:>
+.TA
+(The first is a space.)
+.JT
+\*(<:PQRSTUVWXYZ[\\]^_\*(:>
+.JT
+\*(<:`abcdefghijklmno\*(:>
+.JT
+\*(<:pqrstuvwxyz{|}~\*(:>
+.bp
+.pl 0
+.ch fo