Annotation of researchv10dc/man/man9/sam.9, revision 1.1.1.1

1.1       root        1: .ds a \fR*\ \fP
                      2: .TH SAM 9.1
                      3: .CT 1 editor
                      4: .SH NAME
                      5: sam \- screen editor with structural regular expressions 
                      6: .SH SYNOPSIS
                      7: .B sam
                      8: [
                      9: .I option ...
                     10: ] [
                     11: .I files
                     12: ]
                     13: .PP
                     14: .I sam
                     15: .B -r
                     16: .I machine
                     17: .PP
                     18: .B sam.save
                     19: .SH DESCRIPTION
                     20: .I Sam
                     21: is a multi-file editor.
                     22: It modifies a local copy of a Unix file.
                     23: The copy is here called a
                     24: .IR file ;
                     25: a Unix file is distinguished by the trademarked
                     26: adjective.
                     27: The files are listed in a menu available through mouse button 3
                     28: or the
                     29: .B n
                     30: command.
                     31: Each file has an associated name, usually the name of the
                     32: Unix file from which it was read, and a `modified' bit that indicates whether
                     33: the editor's file agrees with the Unix file.
                     34: The Unix file is not read into
                     35: the editor's file until it first becomes the current file\(emthat to
                     36: which editing commands apply\(emwhereupon its menu entry is printed.
                     37: The options are
                     38: .TP
                     39: .B -d
                     40: Do not download the terminal part of
                     41: .I sam.
                     42: Editing will be done with the command language only, as in
                     43: .IR ed (1).
                     44: .TP
                     45: .BI -r " machine
                     46: Run the host part remotely
                     47: on the specified machine, the terminal part locally.
                     48: This extends graphic editing to files on machines that
                     49: don't ordinarily support it or across 
                     50: .RI non- nfs (8)
                     51: connections.
                     52: .SS Regular expressions
                     53: Regular expressions are as in
                     54: .IR egrep 
                     55: (see
                     56: .IR gre (1)),
                     57: with the addition of
                     58: .B @
                     59: and
                     60: .BR \en .
                     61: A regular expression may never contain a literal newline character.
                     62: The elements of regular expressions are:
                     63: .TP
                     64: .B .
                     65: Match any character except newline.
                     66: .TP
                     67: .B \en
                     68: Match newline.
                     69: .TP
                     70: .B \ex
                     71: For any character except
                     72: .B n
                     73: match the character (here
                     74: .BR x ).
                     75: .TP
                     76: .B @
                     77: Match any character.
                     78: .TP
                     79: .B [abc]
                     80: Match any character in the square brackets.
                     81: .B \en
                     82: may be mentioned.
                     83: .TP
                     84: .B [^abc]
                     85: Match any character not in the square brackets, but never a newline.
                     86: Both these forms accept a range of
                     87: .SM ASCII
                     88: characters indicated by
                     89: a dash, as in
                     90: .BR a-z .
                     91: .TP
                     92: .B ^
                     93: Match the null string immediately after a newline.
                     94: .TP
                     95: .B $
                     96: Match the null string immediately before a newline.
                     97: .PP
                     98: Any other character except newline matches itself.
                     99: .PP
                    100: In the following,
                    101: .I r1
                    102: and
                    103: .I r2
                    104: are regular expressions.
                    105: .TP
                    106: .BI ( r1 )
                    107: Match what
                    108: .I r1
                    109: matches.
                    110: .TP
                    111: .IB r1 | r2
                    112: Match what
                    113: .I r1
                    114: or what
                    115: .IR r2
                    116: matches.
                    117: .TP
                    118: .IB r1 *
                    119: Match zero or more adjacent matches
                    120: of
                    121: .IR r1 .
                    122: .TP
                    123: .IB r1 +
                    124: Match one or more adjacent matches of
                    125: .IR r1 .
                    126: .TP
                    127: .IB  r1 ?
                    128: Match zero or one matches of
                    129: .IR r1 .
                    130: .PP
                    131: The operators
                    132: .BR * ,
                    133: .B +
                    134: and
                    135: .B ?
                    136: are highest precedence, then catenation, then
                    137: .B |
                    138: is lowest.
                    139: The empty
                    140: regular expression stands for the last complete expression encountered.
                    141: A regular expression in
                    142: .I sam
                    143: matches the longest leftmost substring formally
                    144: matched by the expression.
                    145: Searching in the reverse direction is equivalent
                    146: to searching backwards with the catenation operations reversed in
                    147: the expression.
                    148: .SS Addresses
                    149: An address identifies a substring in a file.
                    150: In the following, `character
                    151: .IR n '
                    152: means the null string
                    153: after the
                    154: .IR n -th
                    155: character in the file, with 1 the
                    156: first character in the file.
                    157: `Line
                    158: .IR n '
                    159: means the
                    160: .IR n -th
                    161: match,
                    162: starting at the beginning of the file, of the regular expression
                    163: .L .*\en? .
                    164: (The peculiar properties of a last line without a newline are
                    165: temporarily undefined.)
                    166: All files always have a current substring, called dot,
                    167: that is the default address.
                    168: .SS Simple Addresses
                    169: .TP
                    170: .BI # n
                    171: The empty string after character
                    172: .IR n ;
                    173: .B #0
                    174: is the beginning of the file.
                    175: .TP
                    176: .I n
                    177: Line
                    178: .IR n .
                    179: .TP
                    180: .BI  / regexp /
                    181: .PD0
                    182: .TP
                    183: .BI ? regexp ?
                    184: The substring that matches the regular expression,
                    185: found by looking toward the end 
                    186: .RB ( / )
                    187: or beginning
                    188: .RB ( ? )
                    189: of the file,
                    190: and if necessary continuing the search from the other end to the
                    191: starting point of the search.
                    192: The matched substring may straddle
                    193: the starting point.
                    194: .PD
                    195: .TP
                    196: .B 0
                    197: The string before the first full line.
                    198: This is not necessarily
                    199: the null string; see
                    200: .B +
                    201: and
                    202: .B -
                    203: below.
                    204: .TP
                    205: .B $
                    206: The null string at the end of the file.
                    207: .TP
                    208: .B .
                    209: Dot.
                    210: .TP
                    211: .B \&'
                    212: The mark in the file (see the
                    213: .B k
                    214: command below).
                    215: .TP
                    216: \f(CW"\f2regexp\f(CW"\f1\f1
                    217: Preceding a simple address (default
                    218: .BR . ),
                    219: refers to the address evaluated in the unique file whose menu line
                    220: matches the regular expression.
                    221: .SS Compound Addresses
                    222: In the following,
                    223: .I a1
                    224: and
                    225: .I a2
                    226: are addresses.
                    227: .TP
                    228: .IB a1 + a2
                    229: The address
                    230: .I a2
                    231: evaluated starting at the end of
                    232: .IR a1 .
                    233: .TP
                    234: .IB a1 - a2
                    235: The address
                    236: .I a2
                    237: evaluated looking in the reverse direction
                    238: starting at the beginning of
                    239: .IR a1 .
                    240: .TP
                    241: .IB a1 , a2
                    242: The substring from the beginning of
                    243: .I a1
                    244: to the end of
                    245: .IR a2 .
                    246: If
                    247: .I a1
                    248: is missing,
                    249: .B 0
                    250: is substituted
                    251: If
                    252: .I a2
                    253: is missing,
                    254: .B $
                    255: is substituted.
                    256: .TP
                    257: .IB  a1 ; a2
                    258: Like
                    259: .IB a1 , a2,
                    260: but with
                    261: .I a2
                    262: evaluated at the end of, and dot set to,
                    263: .IR a1 .
                    264: .PP
                    265: The operators
                    266: .B +
                    267: and
                    268: .B -
                    269: are high precedence, while
                    270: .B ,
                    271: and
                    272: .B ;
                    273: are low precedence.
                    274: .PP
                    275: In both
                    276: .B +
                    277: and
                    278: .B -
                    279: forms, if
                    280: .I a2
                    281: is a line or character address with a missing
                    282: number, the number defaults to 1.
                    283: If
                    284: .I a1
                    285: is missing,
                    286: .L .
                    287: is substituted.
                    288: If both
                    289: .I a1
                    290: and
                    291: .I a2
                    292: are present and distinguishable,
                    293: .B +
                    294: may be elided.
                    295: .I a2
                    296: may be a regular
                    297: expression; if it is delimited by
                    298: .LR ? 's,
                    299: the effect of the
                    300: .B +
                    301: or
                    302: .B -
                    303: is reversed.
                    304: .PP
                    305: It is an error for a compound address to represent a malformed substring.
                    306: Some useful idioms: 
                    307: .IB a1 +- 
                    308: .RI ( a1 \&\f5-+\fP )
                    309: selects the line containing
                    310: the end (beginning) of a1.
                    311: .BI 0/ regexp /
                    312: locates the first match of the expression in the file.
                    313: (The form
                    314: .B 0;//
                    315: sets dot unnecessarily.)
                    316: .BI ./ regexp /// 
                    317: finds the second following occurrence of the expression,
                    318: and
                    319: .BI .,/ regexp /
                    320: extends dot.
                    321: .SS Commands
                    322: In the following, text demarcated by slashes represents text delimited
                    323: by any printable
                    324: .SM ASCII
                    325: character except alphanumerics.
                    326: Any number of
                    327: trailing delimiters may be elided, with multiple elisions then representing
                    328: null strings, but the first delimiter must always
                    329: be present.
                    330: In any delimited text,
                    331: newline may not appear literally;
                    332: .B \en
                    333: may be typed for newline; and
                    334: .B \e/
                    335: quotes the delimiter, here 
                    336: .LR / .
                    337: Backslash is otherwise interpreted literally, except in
                    338: .B s
                    339: commands.
                    340: .PP
                    341: Most commands may be prefixed by an address to indicate their range
                    342: of operation.
                    343: Those that may not are marked with a 
                    344: .L *
                    345: below.
                    346: If a command takes
                    347: an address and none is supplied, dot is used.
                    348: The sole exception is
                    349: the
                    350: .B w
                    351: command, which defaults to
                    352: .BR 0,$ .
                    353: In the description, `range' is used
                    354: to represent whatever address is supplied.
                    355: Many commands set the
                    356: value of dot as a side effect.
                    357: If so, it is always set to the `result'
                    358: of the change: the empty string for a deletion, the new text for an
                    359: insertion, etc. (but see the
                    360: .B s
                    361: and
                    362: .B e
                    363: commands).
                    364: .br
                    365: .ne 1.2i
                    366: .SS Text commands
                    367: .PD0
                    368: .TP
                    369: .BI a/ text /
                    370: .TP
                    371: or
                    372: .TP
                    373: .B  a
                    374: .TP
                    375: .I lines of text
                    376: .TP
                    377: .B .
                    378: Insert the text into the file after the range.
                    379: Set dot.
                    380: .TP
                    381: .B c\fP
                    382: .br
                    383: .ns
                    384: .TP
                    385: .B i\fP
                    386: Same as
                    387: .BR a ,
                    388: but
                    389: .B c
                    390: replaces the text, while
                    391: .B i
                    392: inserts
                    393: .I before
                    394: the range.
                    395: .TP
                    396: .B d
                    397: Delete the text in the range.
                    398: Set dot.
                    399: .TP
                    400: .BI s/ regexp / text /
                    401: Substitute
                    402: .I text
                    403: for the first match to the regular expression in the range.
                    404: Set dot to the modified range.
                    405: In 
                    406: .I text
                    407: the character
                    408: .B &
                    409: stands for the string
                    410: that matched the expression. 
                    411: Backslash behaves as usual unless followed by
                    412: a digit:
                    413: .BI \e d
                    414: stands for the string that matched the
                    415: subexpression begun by the
                    416: .IR d -th
                    417: left parenthesis.
                    418: If
                    419: .I s
                    420: is followed immediately by a
                    421: number
                    422: .IR n ,
                    423: as in
                    424: .BR s2/x/y/ ,
                    425: the
                    426: .IR n -th
                    427: match in the range is substituted.
                    428: If the
                    429: command is followed by a
                    430: .BR g ,
                    431: as in
                    432: .BR s/x/y/g ,
                    433: all matches in the range
                    434: are substituted.
                    435: .TP
                    436: .BI m " a1
                    437: .br
                    438: .ns
                    439: .TP
                    440: .BI t " a1
                    441: Move the range to after
                    442: .I a1
                    443: .RB ( m ),
                    444: or copy it
                    445: .RB ( t ).
                    446: Set dot.
                    447: .SS Display commands
                    448: .TP
                    449: .B p
                    450: Print the text in the range.
                    451: Set dot.
                    452: .TP
                    453: .B =
                    454: Print the line address and character address of the range.
                    455: .TP
                    456: .B =#
                    457: Print just the character address of the range.
                    458: .SS File commands
                    459: In these commands a
                    460: .I file-list
                    461: may be expressed
                    462: .BI < Unix-command
                    463: in which case the file names are taken as words (in the shell sense)
                    464: generated by the Unix command.
                    465: .TP
                    466: .BI \*ab " file-list
                    467: Set the current file to the first file named in the list
                    468: that
                    469: .I sam
                    470: also has in its menu.
                    471: .TP
                    472: .BI \*aB " file-list
                    473: Same as
                    474: .BR b ,
                    475: except that file names not in the menu are entered there,
                    476: and all file names in the list are examined.
                    477: .TP
                    478: .B \*an
                    479: Print a menu of files.
                    480: The format is:
                    481: .RS
                    482: .TP \w'\ \ or\ blank\ \'u
                    483: .BR ' " or blank
                    484: indicating the file is modified or clean,
                    485: .TP
                    486: .BR - " or \&" +
                    487: indicating the the file is unread or has been read
                    488: (in the terminal,
                    489: .B *
                    490: means more than one window is open),
                    491: .TP
                    492: .BR . " or blank
                    493: indicating the current file,
                    494: .TP
                    495: a blank,
                    496: .TP
                    497: and the file name.
                    498: .RE
                    499: .TP 0
                    500: .BI \*aD " file-list
                    501: Delete the named files from the menu.
                    502: If no files are named, the current file is deleted.
                    503: It is an error to
                    504: .B D
                    505: a modified file, but a subsequent
                    506: .B D
                    507: will delete such a file.
                    508: .SS I/O Commands
                    509: .TP
                    510: .BI \*ae " filename
                    511: Replace the file by the contents of the named Unix file.
                    512: Set dot to the beginning of the file.
                    513: .TP
                    514: .BI r " filename
                    515: Replace the text in the range by the contents of the named Unix file.
                    516: Set dot.
                    517: .TP
                    518: .BI w " filename
                    519: Write the range (default
                    520: .BR 0,$ )
                    521: to the named Unix file.
                    522: .TP
                    523: .BI \*af " filename
                    524: Set the file name and print the resulting menu entry.
                    525: .PP
                    526: If the file name is absent from any of these, the current file name is used.
                    527: .B e
                    528: always sets the file name,
                    529: .B r
                    530: and
                    531: .B w
                    532: do so if the file has no name.
                    533: .TP
                    534: .BI < " Unix-command
                    535: Replace the range by the standard output of the
                    536: Unix command.
                    537: .TP
                    538: .BI > " Unix-command
                    539: Sends the range to the standard input of the
                    540: Unix command.
                    541: .TP
                    542: .BI | " Unix-command
                    543: Send the range to the standard input, and replace it by
                    544: the standard output, of the
                    545: Unix command.
                    546: .TP
                    547: .BI \*a! " Unix-command
                    548: Run the
                    549: Unix command.
                    550: .TP
                    551: .BI \*acd " directory
                    552: Change working directory.
                    553: If no directory is specified,
                    554: .B $HOME
                    555: is used.
                    556: .PP
                    557: In any of
                    558: .BR < ,
                    559: .BR > ,
                    560: .B |
                    561: or
                    562: .BR ! ,
                    563: if the
                    564: .I Unix command
                    565: is omitted the last
                    566: .I Unix command
                    567: (of any type) is substituted.
                    568: If
                    569: .I sam
                    570: is downloaded,
                    571: .B !
                    572: sets standard input to
                    573: .FR /dev/null ,
                    574: and otherwise
                    575: unassigned output
                    576: .RB ( stdout
                    577: for
                    578: .B !
                    579: and
                    580: .BR > ,
                    581: .B stderr
                    582: for all) is placed in
                    583: .F $HOME/sam.err
                    584: and the first few lines are printed.
                    585: .SS Loops and Conditionals
                    586: .TP
                    587: .BI x/ regexp / " command
                    588: For each match of the regular expression in the range, run the command
                    589: with dot set to the match.
                    590: Set dot to the last match.
                    591: If the regular
                    592: expression and its slashes are omitted, 
                    593: .L /.*\en/
                    594: is assumed.
                    595: Null string matches potentially occur before every character
                    596: of the range and at the end of the range.
                    597: .TP
                    598: .BI y/ regexp / " command
                    599: Like
                    600: .B x,
                    601: but run the command for each substring that lies before, between,
                    602: or after
                    603: the matches that would be generated by
                    604: .BR x .
                    605: There is no default behavior.
                    606: Null substrings potentially occur before every character
                    607: in the range.
                    608: .TP
                    609: .BI \*aX/ regexp / " command
                    610: For each file whose menu entry matches the regular expression,
                    611: run the command.
                    612: If the expression is omitted, the command is run
                    613: in every file.
                    614: .TP
                    615: .BI \*aY/ regexp / " command
                    616: Same as
                    617: .BR X ,
                    618: but for files that do not match the regular expression,
                    619: and the expression is required.
                    620: .TP
                    621: .BI g/ regexp / " command
                    622: .br
                    623: .ns
                    624: .TP
                    625: .BI v/ regexp / " command
                    626: If the range contains
                    627: .RB ( g )
                    628: or does not contain
                    629: .RB ( v )
                    630: a match for the expression,
                    631: set dot to the range and run the command.
                    632: .PP
                    633: These may be nested arbitrarily deeply, but only one instance of either
                    634: .B X
                    635: or
                    636: .B Y
                    637: may appear in a \%single command.
                    638: An empty command in an
                    639: .B x
                    640: or
                    641: .B y
                    642: defaults to
                    643: .BR p ;
                    644: an empty command in
                    645: .B X
                    646: or
                    647: .B Y
                    648: defaults to
                    649: .BR f .
                    650: .B g
                    651: and
                    652: .B v
                    653: do not have defaults.
                    654: .SS Miscellany
                    655: .TP
                    656: .B k
                    657: Set the current file's mark to the range.  Does not set dot.
                    658: .TP
                    659: .B \*aq
                    660: Quit.
                    661: It is an error to quit with modified files, but a second
                    662: .B q
                    663: will succeed.
                    664: .TP
                    665: .BI \*au " n
                    666: Undo the last
                    667: .I n
                    668: (default 1)
                    669: top-level commands that changed the contents or name of the
                    670: current file, and any other file whose most recent change was simultaneous
                    671: with the current file's change.
                    672: Successive
                    673: .BR u 's
                    674: move further back in time.
                    675: The only commands for which u is ineffective are
                    676: .BR cd ,
                    677: .BR u ,
                    678: .BR q ,
                    679: .B w
                    680: and
                    681: .BR D .
                    682: .TP
                    683: (empty)
                    684: If the range is explicit, set dot to the range.
                    685: If
                    686: .I sam
                    687: is downloaded, the resulting dot is selected on the screen;
                    688: otherwise it is printed.
                    689: If no address is specified (the
                    690: command is a newline) dot is extended in either direction to
                    691: line boundaries and printed.
                    692: If dot is thereby unchanged, it is set to
                    693: .B .+1 
                    694: and printed.
                    695: .PD
                    696: .SS Grouping and multiple changes
                    697: Commands may be grouped by enclosing them in braces
                    698: .BR {} .
                    699: Commands within the braces must appear on separate lines (no backslashes are
                    700: required between commands).
                    701: Semantically, an opening brace is like a command:
                    702: it takes an (optional) address and sets dot for each sub-command.
                    703: Commands within the braces are executed sequentially, but changes made
                    704: by one command are not visible to other commands (see the next section
                    705: of this manual).
                    706: Braces may be nested arbitrarily.
                    707: .PP
                    708: When a command makes a number of changes to a file, as in
                    709: .BR x/re/c/text/ ,
                    710: the addresses of all changes to the file are computed in the original file.
                    711: If the changes are in sequence,
                    712: they are applied to the file.
                    713: Successive insertions at the same address are catenated into a single
                    714: insertion composed of the several insertions in the order applied.
                    715: .SS The terminal
                    716: What follows refers to behavior of
                    717: .I sam
                    718: when downloaded, that is, when
                    719: operating as a display editor on a bitmap display.
                    720: This is the default
                    721: behavior; invoking
                    722: .I sam
                    723: with the
                    724: .B -d
                    725: (no download) option provides access
                    726: to the command language only.
                    727: .PP
                    728: Each file may have zero or more windows open.
                    729: Each window is equivalent
                    730: and is updated simultaneously with changes in other windows on the same file.
                    731: Each window has an independent value of dot, indicated by a highlighted
                    732: substring on the display.
                    733: Dot may be in a region not within
                    734: the window.
                    735: There is usually a `current window',
                    736: marked with a dark border, to which typed text and editing
                    737: commands apply.
                    738: Text may be typed and edited as in
                    739: .IR mux (9.1);
                    740: also the escape key (ESC) selects (sets dot to) text typed
                    741: since the last mouse button hit.
                    742: .PP
                    743: The button 3 menu controls window operations.
                    744: The top of the menu
                    745: provides the following operators, each of which prompts with one or
                    746: more
                    747: .IR mux -like
                    748: cursors to prompt for selection of a window or sweeping
                    749: of a rectangle.
                    750: `Sweeping' a null rectangle gets a large window, disjoint
                    751: from the command window or the whole screen, depending on
                    752: where the null rectangle is.
                    753: .TF reshape
                    754: .TP 
                    755: .B new
                    756: Create a new, empty file.
                    757: .TP
                    758: .B xerox
                    759: Create a copy of an existing window.
                    760: .TP
                    761: .B reshape
                    762: As in
                    763: .I mux.
                    764: .TP
                    765: .B close
                    766: Delete the window.
                    767: In the last window of a file,
                    768: .B close
                    769: is equivalent to a
                    770: .B D
                    771: for the file.
                    772: .TP
                    773: .B write
                    774: Equivalent to a
                    775: .B w
                    776: for the file.
                    777: .PD
                    778: .PP
                    779: Below these operators is a list of available files, starting with
                    780: .BR ~~sam~~ ,
                    781: the command window.
                    782: Selecting a file from the list makes the most recently
                    783: used window on that file current, unless it is already current, in which
                    784: case selections cycle through the open windows.
                    785: If no windows are open
                    786: on the file, the user is prompted to open one.
                    787: Files other than
                    788: .B ~~sam~~
                    789: are marked with one of the characters
                    790: .B -+*
                    791: according as zero, one, or more windows
                    792: are open on the file.
                    793: A further mark
                    794: .L .
                    795: appears on the file in the current window and
                    796: a single quote,
                    797: .BR ' ,
                    798: on a file modified since last write.
                    799: .PP
                    800: Nothing can be done without a command window, for which
                    801: .I sam
                    802: prompts initially.
                    803: The command window is an ordinary window except that text typed to it
                    804: is interpreted as commands for the editor rather than passive text,
                    805: and text printed by editor commands appears in it.
                    806: The behavior is like
                    807: .I mux,
                    808: with a `command point' that separates commands being typed from
                    809: previous output.
                    810: Commands typed in the command window apply to the
                    811: current open file\(emthe file in the most recently
                    812: current window.
                    813: .SS Manipulating text
                    814: Button 1 changes selection, much like
                    815: .I mux.
                    816: Pointing to a non-current window with button 1 makes it current;
                    817: within the current window, button 1 selects text, thus setting dot.
                    818: Double-clicking selects text to the boundaries of words, lines,
                    819: quoted strings or bracketed strings, depending on the text at the click.
                    820: .PP
                    821: Button 2 provides a menu of editing commands:
                    822: .PD0
                    823: .TP
                    824: .B cut
                    825: Delete dot and save the deleted text in the snarf buffer.
                    826: .TP
                    827: .B paste
                    828: Replace the text in dot by the contents of the snarf buffer.
                    829: .TP
                    830: .B snarf
                    831: Save the text in dot in the snarf buffer.
                    832: .TP
                    833: .B look
                    834: Search forward for the next occurrence of the literal text in dot.
                    835: If dot is the null string, the text in the snarf buffer is
                    836: used.
                    837: The snarf buffer is unaffected.
                    838: .TP
                    839: .B <mux>
                    840: Exchange snarf buffers with
                    841: .IR mux.
                    842: .TP
                    843: .BI / regexp
                    844: Search forward for the next match of the last regular expression
                    845: typed in a command.
                    846: (Not in command window.)
                    847: .TP
                    848: .B send
                    849: Send the text in dot, or the snarf buffer if
                    850: dot is the null string, as if it were typed to the command window.
                    851: Saves the sent text in the snarf buffer.
                    852: (Command window only.) 
                    853: .TP
                    854: .B scroll
                    855: .TP
                    856: .B noscroll
                    857: Select whether to reveal automatically text
                    858: that appears off the end of the command window.
                    859: (Command window only.)
                    860: .PD
                    861: .SS Abnormal termination
                    862: If
                    863: .I sam
                    864: terminates other than by a
                    865: .B q
                    866: command (by hangup, deleting its layer, etc.), modified
                    867: files are saved in an
                    868: executable file,
                    869: .FR $HOME/sam.save .
                    870: This program, when executed, asks whether to write
                    871: each file back to a Unix file.
                    872: The answer
                    873: .L y
                    874: causes writing; anything else skips the file.
                    875: .SH FILES
                    876: .F $HOME/sam.save
                    877: .br
                    878: .F $HOME/sam.err
                    879: .SH SEE ALSO
                    880: .IR ed (1),
                    881: .IR sed (1),
                    882: .IR vi (1),
                    883: .IR gre (1)
                    884: .SH BUGS
                    885: The
                    886: .B u
                    887: command undoes characters\(emand backspaces\(emtyped directly
                    888: into a file window in unpredictable increments.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.