|
|
1.1 ! root 1: .TH JIM 1 "630 MTG" ! 2: .SH NAME ! 3: jim, jim.recover\- 630 MTG text editor ! 4: .SH SYNOPSIS ! 5: .B jim ! 6: [ ! 7: .B \-c ! 8: ] [ files \&. \&. \&. ] ! 9: .br ! 10: \f3jim.\(**\f1 ! 11: [ ! 12: .B \-f ! 13: ] [ ! 14: .B \-t ! 15: ] [ files \&. \&. \&. ] ! 16: .SH DESCRIPTION ! 17: .I Jim ! 18: is the text editor for the 630 MTG terminal. ! 19: .P ! 20: It is a shared cached application if the \f3\-c\f1 option is ! 21: specified. ! 22: This means that multiple instances of jim ! 23: may run simultaneously without needing to do a download for ! 24: each instance. Once jim is downloaded it does not have to be ! 25: downloaded again. ! 26: .P ! 27: Jim relies on the mouse to select text and commands; ! 28: it runs only under ! 29: .IR layers (1). ! 30: .IR Jim 's ! 31: screen consists of a number of ! 32: .IR frames , ! 33: a one-line command and diagnostic frame at the bottom, ! 34: and zero or more larger file frames above it. ! 35: Except where indicated, these frames behave identically. ! 36: One of the frames is always the current frame, ! 37: to which typing and editing commands refer, ! 38: and one of the file frames is the working frame, ! 39: to which file commands such as pattern searching and I/O refer. ! 40: .PP ! 41: A frame has at any time a selected region of text, ! 42: indicated by reverse video highlighting. ! 43: The selected region may be a null string between two characters, ! 44: indicated by a narrow vertical bar between the characters. ! 45: The editor has a single ! 46: .I "save buffer ! 47: containing an arbitrary string. ! 48: The editing commands simply invoke transformations between the ! 49: selected region and the save buffer. ! 50: .PP ! 51: The mouse buttons are used for the most common operations. ! 52: Button 1 is used for selection. ! 53: Clicking button 1 in a frame ! 54: which is not the current frame makes the indicated frame current. ! 55: Clicking button 1 in the current frame selects the null string closest ! 56: to the mouse cursor. ! 57: Making the same null selection twice (`double clicking') selects ! 58: (in decreasing precedence) the bracketed or quoted string, word, or line ! 59: enclosing the selection. ! 60: By depressing and holding button 1, an arbitrary contiguous visible string ! 61: may be selected. ! 62: Button 2 provides a small menu of text manipulation functions, described below. ! 63: Button 3 provides control for inter-frame operations. ! 64: .PP ! 65: The button 2 menu entries are: ! 66: .TP ! 67: .B cut ! 68: Copy the selected text to the save buffer and delete it from the frame. ! 69: If the selected text is null, the save buffer is unaffected. ! 70: .TP ! 71: .B paste ! 72: Replace the selected text by the contents of the save buffer. ! 73: .TP ! 74: .B snarf ! 75: Copy the selected text to the save buffer. ! 76: If the selected text is null, the save buffer is unaffected. ! 77: .bp ! 78: .PP ! 79: Typing ! 80: replaces the selected text with the typed text. ! 81: If the selected text is not null, ! 82: the first character typed forces an implicit ! 83: .BR cut . ! 84: Control characters are discarded, but ! 85: BS (control H), ! 86: ETB (control W), ! 87: NL (control J) and ESC (escape) have special meanings. ! 88: BS is the usual backspace character, which erases the character before the selected text (which is a null string when it takes effect). ! 89: ETB erases back to the word boundary preceding the selected text. ! 90: There is no line kill character. ! 91: NL toggles the current frame between the workframe and the diagnostic ! 92: frame, and can be a substitute for manual frame selection with the ! 93: mouse. ! 94: ESC selects the text typed since the last button hit or ESC. ! 95: If an ESC is typed immediately after a button hit or ESC, ! 96: it is identical to a ! 97: .BR cut . ! 98: ESC followed by ! 99: .B paste ! 100: provides the functionality of a simple undo feature. ! 101: .PP ! 102: The button 3 menu entries are: ! 103: .TP ! 104: .B new ! 105: Create a new frame by sweeping with the mouse. ! 106: .TP ! 107: .B reshape ! 108: Change the shape of the indicated frame. ! 109: The frame is selected by clicking button 3 over the frame. ! 110: .TP ! 111: .B close ! 112: Close the indicated frame and its associated file. ! 113: The file is still available for editing later; ! 114: only the associated frame is shut down. ! 115: .TP ! 116: .B write ! 117: Write the indicated frame's contents to its associated file. ! 118: .PP ! 119: The rest of the menu is a list of file names available for editing. ! 120: To work in a different file, select the file from the menu. ! 121: If the file is not open on the screen, the cursor will switch to an ! 122: outline box to prompt for a rectangle to be swept out with button 3. ! 123: (Clicking button 3 without moving the mouse creates the largest ! 124: possible rectangle.) ! 125: If the file is already open, it will simply be made the workframe and ! 126: current frame (for typing), perhaps after redrawing if it is obscured ! 127: by another frame. ! 128: The format of the lines in the menu is: ! 129: .TP ! 130: \- ! 131: possibly an apostrophe, indicating that the file has been modified since ! 132: last written, ! 133: .TP ! 134: \- ! 135: possibly a period or asterisk, indicating the file is open (asterisk) or ! 136: the workframe (period), ! 137: .TP ! 138: \- ! 139: a blank, ! 140: .TP ! 141: \- ! 142: and the file name. ! 143: The file name may be abbreviated by compacting path components to keep ! 144: the menu manageable, but the last component will always be complete. ! 145: .bp ! 146: .PP ! 147: The work frame has a ! 148: .I "scroll bar ! 149: \(em a black vertical bar down the left edge. ! 150: A small tick in the bar indicates the relative position of the frame ! 151: within the file. ! 152: Pointing to the scroll bar and clicking a button controls scrolling ! 153: operations in the file: ! 154: .TP ! 155: button 1 ! 156: Move the line at the top of the screen to the y position of the mouse. ! 157: .TP ! 158: button 2 ! 159: Move to the absolute position in the file indicated by the y position of the mouse. ! 160: .TP ! 161: button 3 ! 162: Move the line at the y position of the mouse to the top of the screen. ! 163: .PP ! 164: The bottom line frame is used for a few typed commands, modeled on ! 165: .IR ed (1) , ! 166: which operate on the workframe. ! 167: When a carriage return is typed in the bottom line, ! 168: the line is interpreted as a command. ! 169: The bottom line scrolls, but only ! 170: when the first character of the next line is typed. ! 171: Thus, typically, after some message appears in the bottom line, ! 172: a command need only be typed; ! 173: the contents of the line will be automatically cleared when the first ! 174: character of the command is typed. ! 175: The commands available are: ! 176: .TP ! 177: .B e \f2file\f1\f3 ! 178: Edit the named ! 179: .IR file , ! 180: or use the current file name if none specified. ! 181: Note that each file frame has an associated file name. ! 182: .TP ! 183: .B E \f2file\f1\f3 ! 184: Edit the named ! 185: .IR file ! 186: unconditionally, as in \fIed\fP(1). ! 187: .TP ! 188: .B f \f2file\f1\f3 ! 189: Set the name of the ! 190: file associated with the work frame, if one is specified, ! 191: and display the result. ! 192: .TP ! 193: .B g \f2files\f1\f3 ! 194: Enter the named ! 195: .I files ! 196: into the filename menu, without duplication, ! 197: and set the work frame to one of the named files. ! 198: If the new work frame's file is not open, the user is prompted to create its frame. ! 199: The arguments to ! 200: .IT g ! 201: are passed through ! 202: .IR echo (1) ! 203: for shell metacharacter interpretation. ! 204: .TP ! 205: .B w \f2file\f1\f3 ! 206: Write the named ! 207: .IR file , ! 208: or use the current file name if none specified. ! 209: .TP ! 210: .B q ! 211: Quit the editor. ! 212: .bp ! 213: .TP ! 214: .B Q ! 215: Quit the editor unconditionally, as in \fIed\fP(1). ! 216: .TP ! 217: .B / ! 218: Search forward for the string matching the regular expression after the slash. ! 219: If found, the matching text is selected. ! 220: The regular expressions are exactly as in ! 221: .IR egrep (1), ! 222: with two additions: the character `@' matches any character ! 223: .I including ! 224: newline, and the sequence `\en' specifies a newline, even in character classes. ! 225: The negation of a character class does not match a newline. ! 226: An empty regular expression (slash-newline) repeats the last regular expression. ! 227: .TP ! 228: .B ? ! 229: Search backwards for the expression after the query. ! 230: .TP ! 231: .B 94 ! 232: Select the text of line 94, as in ! 233: .IR ed . ! 234: .TP ! 235: .B $ ! 236: Select the text of the last line. ! 237: .TP ! 238: .B cd \f2dir\f1\f3 ! 239: Set the working directory to \fIdir\fP, as in the shell. ! 240: There is no CDPATH search, but $HOME is the default \fIdir\fP. ! 241: .TP ! 242: .B = ! 243: Display the line number of selection in the current frame. ! 244: .TP ! 245: .B >\f2Unix-command\fP ! 246: Sends the selected text to the standard input of ! 247: .IR Unix-command . ! 248: .TP ! 249: .B <\f2Unix-command\fP ! 250: Replaces the selected text by the standard output of ! 251: .IR Unix-command . ! 252: .TP ! 253: .B |\|\f2Unix-command\fP ! 254: Replaces the selected text by the standard output of ! 255: .IR Unix-command, ! 256: given the original selected text as standard input. ! 257: .PP ! 258: If any of <, > or | is preceded by an asterisk \(**, ! 259: the command is applied to the entire file, instead of just the selected text. ! 260: If the command for < or | exits with non-zero status, the original text ! 261: is not deleted; otherwise, the new text is selected. ! 262: Finally, the standard error output of the command, which is merged with the ! 263: standard output for >, is saved in the file ! 264: $HOME/jim.err . ! 265: If the file is non-empty when the command completes, the first line is ! 266: displayed in the diagnostic frame. Therefore the command ``>pwd'' ! 267: will report ! 268: .IR jim 's ! 269: current directory. ! 270: .PP ! 271: The most recent search command ('/' or '?') and Unix command ('<', '|', ! 272: or '>') are added to the button 2 menu, so that they may be easily repeated. ! 273: .PP ! 274: Attempts to quit with modified files, or edit a new file ! 275: in a modified frame, are rejected. ! 276: A second `q' or `e' command will succeed. ! 277: The `Q' or `E' commands ignore modifications and work immediately. ! 278: Some consistency checks are performed for the `w' command. ! 279: .I jim ! 280: will reject write requests which it considers dangerous ! 281: (such as writes that change files which are modified when ! 282: read into memory). ! 283: A second `w' will always write the file. ! 284: .bp ! 285: .PP ! 286: If ! 287: .I jim ! 288: receives a hang-up signal, it writes a recover file, ! 289: which is a shell command file that, when executed, will ! 290: retrieve files that were being edited and had been modified. ! 291: The name of the file will be of the form \f2jim.\f1 followed ! 292: by a uniquely generated alphanumeric string. \f2Jim\f1 will ! 293: send mail to the logon id saying files may be recovered and ! 294: specifying the path and name of the recover file. If it cannot ! 295: write this file in the home directory, it writes it in the ! 296: current working directory. The \f3-t\f1 option prints a table ! 297: of contents. By default, the jim recover file is interactive; ! 298: the \f3-f\f1 option suppresses the interaction. ! 299: If no \f2file\f1 argument is given to the jim.recover shell ! 300: file, the recovery will apply to all modified files at the ! 301: time when jim received the hang-up signal. If there is a ! 302: \f2file\f1 argument, only those files will be recovered. ! 303: .SH FILES ! 304: .ta \w'$DMD/lib/jim.m 'u ! 305: $DMD/lib/jim.m terminal support program ! 306: .br ! 307: /tmp/jim.\(** temporary file ! 308: .br ! 309: $HOME/jim.err diagnostic output from Unix commands ! 310: .br ! 311: jim.\(** recovery script created upon \fIjim\fP failure ! 312: .SH SEE ALSO ! 313: ucache(1). ! 314: .br ! 315: ed(1), echo(1), egrep(1) in the \f2UNIX System V ! 316: User's Reference Manual\f1. ! 317: .br ! 318: layers(1) in the \f2Unix System V Release 3 User's Reference Manual\f1. ! 319: .br ! 320: layers(1) in the \f25620 Dot-Mapped Display Reference Manual.\f1 ! 321: .SH WARNING ! 322: \f2Jim\f1 is reshapable, but a reshape clears the screen ! 323: space of all open frames. ! 324: .SH BUGS ! 325: \" spectacular is the real word... ! 326: The regular expression matcher is non-deterministic (unlike ! 327: .IR egrep ), ! 328: and may be slow for ! 329: complicated expressions. ! 330: .P ! 331: The < and | operators don't snarf the original text.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.