Annotation of researchv10dc/man/mana/jim.9, revision 1.1.1.1

1.1       root        1: .TH JIM 9.1
                      2: .SH NAME
                      3: jim, jim.recover \- text editor
                      4: .SH SYNOPSIS
                      5: .B jim
                      6: [
                      7: .I file ...
                      8: ]
                      9: .br
                     10: .B jim.recover
                     11: [
                     12: .B -f
                     13: ]
                     14: [
                     15: .B -t
                     16: ]
                     17: [
                     18: .I file ...
                     19: ]
                     20: .SH DESCRIPTION
                     21: .I Jim
                     22: is an old text editor for the jerq terminal.
                     23: It relies on the mouse to select text and commands.
                     24: It runs only under
                     25: .IR mux (9.1).
                     26: .IR Jim 's
                     27: screen consists of a number of
                     28: .IR frames ,
                     29: a one-line command and diagnostic frame at the bottom
                     30: and zero or more larger file frames above it.
                     31: Except where indicated, these frames behave identically.
                     32: One of the frames is always the current frame,
                     33: to which typing and editing commands refer,
                     34: and one of the file frames is the working frame,
                     35: to which file commands such as pattern searching and IO refer.
                     36: .PP
                     37: A frame has at any time a selected region of text,
                     38: indicated by reverse video highlighting.
                     39: The selected region may be a null string between two characters,
                     40: indicated by a narrow vertical bar between the characters.
                     41: The editor has a single
                     42: `save buffer'
                     43: containing an arbitrary string.
                     44: The editing commands invoke transformers between the
                     45: selected region and the save buffer.
                     46: .PP
                     47: The mouse buttons are used for the most common operations.
                     48: Button 1 (left) is used for selection.
                     49: Clicking button 1 in a frame
                     50: which is not the current frame makes the indicated frame current.
                     51: Clicking button 1 in the current frame selects the null string closest
                     52: to the mouse cursor.
                     53: Making the same null selection twice (`double clicking') selects
                     54: (in decreasing precedence) the bracketed or quoted string, word or line
                     55: enclosing the selection.
                     56: By pushing and holding button 1, an arbitrary contiguous visible string
                     57: may be selected.
                     58: Button 2 provides a small menu of text manipulation functions, described below.
                     59: Button 3 provides control for inter-frame operations.
                     60: .PP
                     61: The button 2 menu entries are:
                     62: .TP .7i
                     63: .B cut
                     64: Copy the selected text to the save buffer and delete it from the frame.
                     65: If the selected text is null, the save buffer is unaffected.
                     66: .TP
                     67: .B paste
                     68: Replace the selected text by the contents of the save buffer.
                     69: .TP
                     70: .B snarf
                     71: Copy the selected text to the save buffer.
                     72: If the selected text is null, the save buffer is unaffected.
                     73: .TP
                     74: .B look
                     75: Search forward for the next occurrence of
                     76: the selected text or, if the selection is null,
                     77: to the next occurrence of the text in the save buffer.
                     78: .TP
                     79: .B <mux>
                     80: Exchange save buffers with
                     81: .IR mux .
                     82: .PP
                     83: Also stored on the button 2 menu are the last Unix command and last
                     84: search string typed (see below); these may be selected to repeat the action.
                     85: .PP
                     86: Typing
                     87: replaces the selected text with the typed text.
                     88: If the selected text is not null,
                     89: the first character typed forces an implicit
                     90: .BR cut .
                     91: Control characters are discarded, but
                     92: BS 
                     93: .RB (control- H ),
                     94: ETB
                     95: .RB (control- W )
                     96: and ESC have special meanings.
                     97: BS is the usual backspace character, which erases the character
                     98: before the selected text (which is a null string when it takes effect).
                     99: ETB erases back to the word boundary preceding the selected text.
                    100: There is no line kill character.
                    101: ESC selects the text typed since the last button hit or ESC.
                    102: If an ESC is typed immediately after a button hit or ESC,
                    103: it is identical to a
                    104: .BR cut .
                    105: ESC and
                    106: .B paste
                    107: provide the functionality for a simple undo feature.
                    108: .PP
                    109: The button 3 menu entries are:
                    110: .TP
                    111: .B new
                    112: Create a new frame, much as in
                    113: .IR mux .
                    114: .TP
                    115: .B reshape
                    116: Change the shape of the indicated frame, as in
                    117: .IR mux .
                    118: The frame is indicated by a button 3 hit after the selection.
                    119: .TP
                    120: .B close
                    121: Close the indicated frame and its associated file.
                    122: .TP
                    123: .B write
                    124: Write the indicated frame's contents to its associated file.
                    125: .PP
                    126: The rest of the menu is a list of file names available for editing.
                    127: To work in a different file, select the file from the menu.
                    128: If the file is not open on the screen, the cursor will switch to an
                    129: outline box to prompt for a rectangle to be swept out with button 3,
                    130: as in the New operator of
                    131: .IR mux .
                    132: (Unlike
                    133: .IR mux ,
                    134: there is a shorthand: sweeping the empty rectangle creates the largest
                    135: possible rectangle.)
                    136: The file is not read until its frame is first opened.
                    137: If the file is already open, it will simply be made the workframe and
                    138: current frame (for typing).
                    139: The format of the lines in the menu is
                    140: .TP
                    141: -
                    142: possibly an apostrophe, indicating that the file has been modified since
                    143: last written,
                    144: .TP
                    145: -
                    146: possibly a period or asterisk, indicating the file is open (asterisk) or
                    147: the workframe (period),
                    148: .TP
                    149: -
                    150: a blank,
                    151: .TP
                    152: -
                    153: and the file name.
                    154: The file name may be abbreviated by compacting path components to keep
                    155: the menu manageable, but the last component will always be complete.
                    156: .PP
                    157: The work frame has a
                    158: `scroll bar'\(ema black vertical bar down the left edge.
                    159: A small tick in the bar indicates the relative position of the frame
                    160: within the file.
                    161: Pointing to the scroll bar and clicking a button controls scrolling
                    162: operations in the file:
                    163: .TP 1i
                    164: button 1
                    165: Move the line at the top of the screen to the
                    166: .I y
                    167: position of the mouse.
                    168: .TP
                    169: button 2
                    170: Move to the absolute position in the file indicated by the y position of the mouse.
                    171: .TP
                    172: button 3
                    173: Move the line at the
                    174: .I y
                    175: position of the mouse to the top of the screen.
                    176: .PP
                    177: The bottom line frame is used for a few typed commands, modeled on
                    178: .IR ed (1),
                    179: which operate on the work frame.
                    180: When a carriage return is typed in the bottom line,
                    181: the line is interpreted as a command.
                    182: The bottom line scrolls, but only
                    183: when the first character of the next line is typed.
                    184: Thus, typically, after some message appears in the bottom line,
                    185: a command need only be typed;
                    186: the previous contents of the line will be automatically cleared.
                    187: The commands available are:
                    188: .TP
                    189: .BI e " file"
                    190: Edit the named
                    191: .IR file ,
                    192: or use the current file name if none specified.
                    193: Note that each file frame has an associated file name.
                    194: .TP
                    195: .BI f " file"
                    196: Set the name of the
                    197: file associated with the work frame, if one is specified,
                    198: and display the result.
                    199: .TP
                    200: .BI g " file ..."
                    201: Enter the named
                    202: .I files
                    203: into the filename menu, without duplication,
                    204: and set the work frame to one of the named files.
                    205: If the new work frame's file is not open, the user is prompted to create its frame.
                    206: The arguments to
                    207: .B g
                    208: are passed through
                    209: .IR echo (1)
                    210: for shell metacharacter interpretation.
                    211: .TP
                    212: .BI w " file"
                    213: Write the named
                    214: .IR file ,
                    215: or use the current file name if none specified.
                    216: The special command
                    217: .IR w \(aa
                    218: writes all modified files with file names.
                    219: .TP
                    220: .B q
                    221: Quit the editor.
                    222: .TP
                    223: .B =
                    224: Print the line number of the beginning of the selected text.
                    225: .TP
                    226: .B /
                    227: Search forward for the string matching the regular expression after the slash.
                    228: If found, the matching text is selected.
                    229: The regular expressions are exactly as in
                    230: .IR egrep (1),
                    231: with two additions: the character 
                    232: .L @
                    233: matches any character, including
                    234: newline, and the sequence
                    235: .L \en
                    236: specifies a newline, even in character classes.
                    237: The negation of a character class does not match a newline.
                    238: An empty regular expression (slash-newline) repeats the last regular expression.
                    239: .TP
                    240: .B ?
                    241: Search backwards for the expression after the query.
                    242: .TP
                    243: .B 94
                    244: Select the text of line 94, as in
                    245: .IR ed .
                    246: .TP
                    247: .B cd
                    248: Set the working directory, as in the shell.
                    249: There is no
                    250: .B CDPATH
                    251: search.
                    252: .TP
                    253: .BI > command
                    254: Send the selected text to the standard input of the Unix
                    255: .IR command .
                    256: .TP
                    257: .B < command
                    258: Replace the selected text by the standard output of the Unix
                    259: .IR command .
                    260: .TP
                    261: .B | command
                    262: Replace the selected text by the standard output of the Unix
                    263: .IR command,
                    264: given the original selected text as standard input.
                    265: .PP
                    266: If any of
                    267: .B < > |
                    268: is preceded by an asterisk
                    269: .BR * ,
                    270: the command is applied to the entire file, instead of just the selected text.
                    271: If the command for
                    272: .B < 
                    273: or
                    274: .B | 
                    275: exits with non-zero status, the original text
                    276: is not deleted; otherwise, the new text is selected.
                    277: Finally, the standard error output of the command, which is merged with the
                    278: standard output for
                    279: .BR > ,
                    280: is saved in the file
                    281: .FR $HOME/jim.err .
                    282: If the file is non-empty when the command completes, the first line is
                    283: displayed in the diagnostic frame.
                    284: Therefore the command
                    285: .L >pwd
                    286: will report
                    287: .I jim 's
                    288: current directory.
                    289: .PP
                    290: Attempts to quit with modified files, or edit a new file
                    291: in a modified frame, are rejected.
                    292: A second 
                    293: .L q
                    294: or 
                    295: .L e
                    296: command will succeed.
                    297: The 
                    298: .L Q
                    299: or 
                    300: .L E
                    301: commands ignore modifications and work immediately.
                    302: Some consistency checks are performed for the 
                    303: .L w
                    304: command.
                    305: .I Jim
                    306: will reject write requests which it considers dangerous
                    307: (such as writes which would change a file modified since
                    308: .I jim
                    309: read it into its memory).
                    310: A second 
                    311: .L w
                    312: will always write the file.
                    313: .PP
                    314: If
                    315: .I jim
                    316: receives a hangup signal, it writes a file
                    317: .FR $HOME/jim.recover ,
                    318: which is a shell command file that, when executed, will retrieve
                    319: the files that were modified when
                    320: .I jim
                    321: exited.
                    322: The
                    323: .B -t
                    324: option prints a table of contents, but does not unpack the files.
                    325: By default,
                    326: .I jim.recover
                    327: is interactive; the
                    328: .B -f
                    329: option suppresses the interaction.
                    330: If no files are named to
                    331: .FR jim.recover ,
                    332: it will recover all the saved files.
                    333: .SH FILES
                    334: .F $HOME/jim.err
                    335: .br
                    336: .F $HOME/jim.recover
                    337: .SH BUGS
                    338: The regular expression matcher is non-deterministic,
                    339: and may be slow for spectacular expressions.
                    340: .br
                    341: When reshaped, the open frames must be re-opened manually.
                    342: .br
                    343: The
                    344: .B <
                    345: and
                    346: .B |
                    347: operators should snarf the original text.

unix.superglobalmegacorp.com

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