|
|
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.