V10/630/man/src/u_man/man1/jim.1

Compare this file to the similar file:
Show the results in this format:

.TH JIM 1 "630 MTG"
.SH NAME
jim, jim.recover\- 630 MTG text editor
.SH SYNOPSIS
.B jim 
[ 
.B \-c 
] [ files \&. \&. \&. ]
.br
\f3jim.\(**\f1
[
.B \-f
] [
.B \-t
] [ files \&. \&. \&. ]
.SH DESCRIPTION
.I Jim
is the text editor for the 630 MTG terminal.
.P
It is a shared cached application if the \f3\-c\f1 option is
specified.
This means that multiple instances of jim
may run simultaneously without needing to do a download for
each instance. Once jim is downloaded it does not have to be
downloaded again.
.P
Jim relies on the mouse to select text and commands;
it runs only under
.IR layers (1).
.IR Jim 's
screen consists of a number of
.IR frames ,
a one-line command and diagnostic frame at the bottom,
and zero or more larger file frames above it.
Except where indicated, these frames behave identically.
One of the frames is always the current frame,
to which typing and editing commands refer,
and one of the file frames is the working frame,
to which file commands such as pattern searching and I/O refer.
.PP
A frame has at any time a selected region of text,
indicated by reverse video highlighting.
The selected region may be a null string between two characters,
indicated by a narrow vertical bar between the characters.
The editor has a single
.I "save buffer
containing an arbitrary string.
The editing commands simply invoke transformations between the
selected region and the save buffer.
.PP
The mouse buttons are used for the most common operations.
Button 1 is used for selection.
Clicking button 1 in a frame
which is not the current frame makes the indicated frame current.
Clicking button 1 in the current frame selects the null string closest
to the mouse cursor.
Making the same null selection twice (`double clicking') selects
(in decreasing precedence) the bracketed or quoted string, word, or line
enclosing the selection.
By depressing and holding button 1, an arbitrary contiguous visible string
may be selected.
Button 2 provides a small menu of text manipulation functions, described below.
Button 3 provides control for inter-frame operations.
.PP
The button 2 menu entries are:
.TP
.B cut
Copy the selected text to the save buffer and delete it from the frame.
If the selected text is null, the save buffer is unaffected.
.TP
.B paste
Replace the selected text by the contents of the save buffer.
.TP
.B snarf
Copy the selected text to the save buffer.
If the selected text is null, the save buffer is unaffected.
.bp
.PP
Typing
replaces the selected text with the typed text.
If the selected text is not null,
the first character typed forces an implicit
.BR cut .
Control characters are discarded, but
BS (control H),
ETB (control W),
NL (control J) and ESC (escape) have special meanings.
BS is the usual backspace character, which erases the character before the selected text (which is a null string when it takes effect).
ETB erases back to the word boundary preceding the selected text.
There is no line kill character.
NL toggles the current frame between the workframe and the diagnostic
frame, and can be a substitute for manual frame selection with the
mouse.
ESC selects the text typed since the last button hit or ESC.
If an ESC is typed immediately after a button hit or ESC,
it is identical to a
.BR cut .
ESC followed by
.B paste
provides the functionality of a simple undo feature.
.PP
The button 3 menu entries are:
.TP
.B new
Create a new frame by sweeping with the mouse.
.TP
.B reshape
Change the shape of the indicated frame.
The frame is selected by clicking button 3 over the frame.
.TP
.B close
Close the indicated frame and its associated file.
The file is still available for editing later;
only the associated frame is shut down.
.TP
.B write
Write the indicated frame's contents to its associated file.
.PP
The rest of the menu is a list of file names available for editing.
To work in a different file, select the file from the menu.
If the file is not open on the screen, the cursor will switch to an
outline box to prompt for a rectangle to be swept out with button 3.
(Clicking button 3 without moving the mouse creates the largest
possible rectangle.)
If the file is already open, it will simply be made the workframe and
current frame (for typing), perhaps after redrawing if it is obscured
by another frame.
The format of the lines in the menu is:
.TP
\-
possibly an apostrophe, indicating that the file has been modified since
last written,
.TP
\-
possibly a period or asterisk, indicating the file is open (asterisk) or
the workframe (period),
.TP
\-
a blank,
.TP
\-
and the file name.
The file name may be abbreviated by compacting path components to keep
the menu manageable, but the last component will always be complete.
.bp
.PP
The work frame has a
.I "scroll bar
\(em a black vertical bar down the left edge.
A small tick in the bar indicates the relative position of the frame
within the file.
Pointing to the scroll bar and clicking a button controls scrolling
operations in the file:
.TP
button 1
Move the line at the top of the screen to the y position of the mouse.
.TP
button 2
Move to the absolute position in the file indicated by the y position of the mouse.
.TP
button 3
Move the line at the y position of the mouse to the top of the screen.
.PP
The bottom line frame is used for a few typed commands, modeled on
.IR ed (1) ,
which operate on the workframe.
When a carriage return is typed in the bottom line,
the line is interpreted as a command.
The bottom line scrolls, but only
when the first character of the next line is typed.
Thus, typically, after some message appears in the bottom line,
a command need only be typed;
the contents of the line will be automatically cleared when the first
character of the command is typed.
The commands available are:
.TP
.B e \f2file\f1\f3
Edit the named 
.IR file ,
or use the current file name if none specified.
Note that each file frame has an associated file name.
.TP
.B E \f2file\f1\f3
Edit the named 
.IR file 
unconditionally, as in \fIed\fP(1).
.TP
.B f \f2file\f1\f3
Set the name of the
file associated with the work frame, if one is specified,
and display the result.
.TP
.B g \f2files\f1\f3
Enter the named
.I files
into the filename menu, without duplication,
and set the work frame to one of the named files.
If the new work frame's file is not open, the user is prompted to create its frame.
The arguments to
.IT g
are passed through
.IR echo (1)
for shell metacharacter interpretation.
.TP
.B w \f2file\f1\f3
Write the named
.IR file ,
or use the current file name if none specified.
.TP
.B q
Quit the editor.
.bp
.TP
.B Q
Quit the editor unconditionally, as in \fIed\fP(1).
.TP
.B /
Search forward for the string matching the regular expression after the slash.
If found, the matching text is selected.
The regular expressions are exactly as in
.IR egrep (1),
with two additions: the character `@' matches any character
.I including
newline, and the sequence `\en' specifies a newline, even in character classes.
The negation of a character class does not match a newline.
An empty regular expression (slash-newline) repeats the last regular expression.
.TP
.B ?
Search backwards for the expression after the query.
.TP
.B 94
Select the text of line 94, as in
.IR ed .
.TP
.B $
Select the text of the last line.
.TP
.B cd \f2dir\f1\f3
Set the working directory to \fIdir\fP, as in the shell.
There is no CDPATH search, but $HOME is the default \fIdir\fP.
.TP
.B =
Display the line number of selection in the current frame.
.TP
.B >\f2Unix-command\fP
Sends the selected text to the standard input of
.IR Unix-command .
.TP
.B <\f2Unix-command\fP
Replaces the selected text by the standard output of
.IR Unix-command .
.TP
.B |\|\f2Unix-command\fP
Replaces the selected text by the standard output of
.IR Unix-command,
given the original selected text as standard input.
.PP
If any of <, > or | is preceded by an asterisk \(**,
the command is applied to the entire file, instead of just the selected text.
If the command for < or | exits with non-zero status, the original text
is not deleted; otherwise, the new text is selected.
Finally, the standard error output of the command, which is merged with the
standard output for >, is saved in the file
$HOME/jim.err .
If the file is non-empty when the command completes, the first line is
displayed in the diagnostic frame.  Therefore the command ``>pwd''
will report
.IR jim 's
current directory.
.PP
The most recent search command ('/' or '?') and Unix command ('<', '|',
or '>') are added to the button 2 menu, so that they may be easily repeated.
.PP
Attempts to quit with modified files, or edit a new file
in a modified frame, are rejected.
A second `q' or `e' command will succeed.
The `Q' or `E' commands ignore modifications and work immediately.
Some consistency checks are performed for the `w' command.
.I jim
will reject write requests which it considers dangerous
(such as writes that change files which are modified when
read into memory).
A second `w' will always write the file.
.bp
.PP
If
.I jim
receives a hang-up signal, it writes a recover file,
which is a shell command file that, when executed, will
retrieve files that were being edited and had been modified.
The name of the file will be of the form \f2jim.\f1 followed
by a uniquely generated alphanumeric string. \f2Jim\f1 will
send mail to the logon id saying files may be recovered and
specifying the path and name of the recover file. If it cannot
write this file in the home directory, it writes it in the
current working directory. The \f3-t\f1 option prints a table
of contents. By default, the jim recover file is interactive;
the \f3-f\f1 option suppresses the interaction.
If no \f2file\f1 argument is given to the jim.recover shell
file, the recovery will apply to all modified files at the
time when jim received the hang-up signal. If there is a
\f2file\f1 argument, only those files will be recovered.
.SH FILES
.ta \w'$DMD/lib/jim.m      'u
$DMD/lib/jim.m	terminal support program
.br
/tmp/jim.\(**	temporary file
.br
$HOME/jim.err	diagnostic output from Unix commands
.br
jim.\(**	recovery script created upon \fIjim\fP failure
.SH SEE ALSO
ucache(1).
.br
ed(1), echo(1), egrep(1) in the \f2UNIX System V
User's Reference Manual\f1.
.br
layers(1) in the \f2Unix System V Release 3 User's Reference Manual\f1.
.br
layers(1) in the \f25620 Dot-Mapped Display Reference Manual.\f1
.SH WARNING
\f2Jim\f1 is reshapable, but a reshape clears the screen
space of all open frames.
.SH BUGS
\" spectacular is the real word...
The regular expression matcher is non-deterministic (unlike
.IR egrep ),
and may be slow for
complicated expressions.
.P
The < and | operators don't snarf the original text.