Annotation of researchv10dc/man/mana/jim.9, revision 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.