2.9BSD/usr/contrib/jove/lib/jove.man
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
_N_A_M_E
jove - Jonathan's Own Version of Emacs
_S_Y_N_O_P_S_I_S
_j_o_v_e [-t tagname] [file1 file2 ... ]
_D_E_S_C_R_I_P_T_I_O_N
Jove is an interactive display oriented editor which allows
one to modify text easily. Jove stands for Jonathan's Own
Version of Emacs. This editor is modeled after the EMACS
written at MIT by Richard Stallman. Jove has tried to
stick to the conventions of real EMACS, but has strayed away
from them in several places. The real EMACS is extensible,
which means the user can change the way the editor behaves
to his own liking. He can do this by changing the commands
that each key invokes or by writing new commands. Although
new commands cannot be written in jove, existing commands
can be bound to any key. There are several concepts a user
needs to understand before he can use the editor to his full
advantage. The three most important are buffers, windows and
command binding.
In most cases, Jove is used to edit already existing files.
Jove reads files into buffers. A buffer is where Jove
stores its version of the file; changes made in the editor
are made to the buffer, not the original file. If the user
makes a change but wishes he did not, he can simply reread
the file from the disk into a fresh buffer. If Jove is
given no files to edit it creates an empty buffer with no
file associated with it. When the user has finished editing
and is satisfied with his changes, he can save the buffer to
a file with the write-named-file command. This command asks
for a file name and writes the contents of the buffer to
that file. Once a buffer is written to a file, the old
version of the file is gone forever, so be careful!! Jove
complains if the buffer is modified and an attempt is made
to leave before saving the changes. It says Modified
buffers exists. Leave anyway?. Answering no to this
question will leave him in the editor so that he can write
the buffers he wishes. If he wants to exit, e.g. he made a
mistake, he should answer yes.
The current position in a buffer is called the point. The
point should not be thought of as being on a character,
rather as being between two characters, namely the character
before the cursor and the character under the cursor.
Jove supports multiple buffers. This means that more than
one file can be edited at a time, each file having its own
buffer. Jove remembers what each buffer looks like while it
is not in use. This makes it possible to jump around from
Printed 6/20/83 1
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
one buffer to another without losing any previous changes,
and without having to save the changes each time a new
buffer is selected. Each buffer has its own set of
characteristics that jove also remembers, so switching from
one buffer to another can change the way the editor behaves.
Jove uses windows to show what the buffer looks like at any
time.
Often files are too large to fit in the terminals screen all
at once. While in the editor, the screen acts as a window
into a buffer, always showing what the buffer looks like.
If the point moves past the top or bottom of the window, the
window moves to where the point has moved. When a line is
too long to fit on the terminal, jove shows this by putting
an ! at the end of the line. Moving the point to a position
that is off the screen horizontally causes the line
containing the point to be scrolled to the right or the left
such that the point is visible. Only the current line is
ever scrolled. If the line containing the point is scrolled
and the point moves to a different line, the scrolled line
automatically moved back to its normal position. The window
reflects what is being done as it is being done, so what you
see is ALWAYS what you get.
Initially there is only one window, but it is possible to
divide a window so that there are two smaller windows. The
smaller windows are exactly the same as the original window
except for the amount of the buffer each can show at a time.
Sometimes the same buffer will be shown in more than one
window, and other times there will be a different buffer in
each window.
There are many commands built into jove. There is a command
handler in jove that prompts for commands. When the name of
a command typed in is unambiguous, that command will be
executed. Since it is very slow to have to type in the name
of each command every time it is needed, jove makes it
possible to bind commands to keys. When a command is bound
to a key any future hits on that key will invoke that
command. All the printing characters are initially bound to
the function self-insert so that typing any one of the
printing characters causes it to be inserted into the text.
Any of the existing commands can be bound to any key. Since
there are more commands than there are keys, two keys are
treated as prefix commands. When a key bound to one of the
prefix commands is typed, the next character typed is
interpreted on the basis that it was preceded by one of the
prefix keys. Initially ^X and ESC are the prefix keys, and
as you will see, many of the built in commands are initially
bound to these "two stroke" keys.
Printed 6/20/83 2
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
Users will likely want to modify the default key bindings to
his liking. Since it would be quite a pain to have to set
up the bindings each time jove is started up, jove reads
commands from the file if they were typed to the command
handler during an edit. There can be only one command per
line in the init file. The source command can be used to
read commands from a specified file. This means that a
macro can be used to change the key bindings, e.g. to enter
a mode, by reading from a specified file which contains all
the new bindings.
Jove is invoked by simply typing jove to either shell or C-
shell. If arguments are provided on the command line, jove
treats each as a file to be read, and reads it into its own
buffer. The current buffer will be the first file read in,
and the point will be at the beginning of the buffer. There
is one exception. If jove sees a -t on the command line it
takes the next word to be a C tag and reads in the file
containing that tag. Inexperienced users need not worry
about that though. At the bottom of each window is the mode
line associated with that window. A typical mode line might
look like this:
JOVE (TE) Buffer: jove.1 "jove.1" *
The mode line always says JOVE. The TE inside the
parentheses means the editor is in text-fill mode (see modes
below). In this example the name of the buffer is jove.1
and the name inside the quotes is the file. In this case
the file is jove.1; in general the buffer name and the file
name are the same. The * at the end of the line indicates
that the buffer has been modified but not saved. The very
bottom line on the screen is the message line. This is
where jove prints any messages and where jove prompts the
user for more input. For example, when the user wants to
save his buffer, jove would ask for a file name to use on
this line.
Once invoked, Jove is ready to accept commands from the
user. Most of the editor commands move the point around in
the buffer and others change what the buffer looks like.
These commands operate on single characters, words, lines,
and on regions. One of the more common editor commands is
the self-insert command.
The 3self-insert command simply inserts the character that
invoked it into the buffer at the point. Because the point
is really between two characters, inserting a character at
point pushes all the characters, from the point to the end
of the line, over to the right to make room for the new
character. The point moves one to the right staying just
Printed 6/20/83 3
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
ahead of the newly inserted character. This means that if
the user wants to insert a word, he can just type the word.
If the point did not move as he typed, he would have to
move forward a character after each letter of the word was
typed. Characters which are not self inserting, for example
those which are other editor commands, also can be inserted
but must be quoted first. This is done with the quote-char
command which inserts the next character typed no matter
what character it is.
CONTROL-Q (that is the CTRL key typed with the Q key at the
same time) is an example of a control character. ^Q is
short hand for CONTROL-Q. Many of the editor commands are
bound to control keys initially since the rest of the
characters are self-inserting. Escape characters are
different from control character in that they are typed in
two keys strokes, namely the ESC key followed by any other
key. If there is not a command bound to the escape
<character> sequence, the editor will complain.
The commands forward-character and backward-character are
bound to the keys ^F and ^B respectively. They move forward
and backward one character position in the buffer. The
commands forward-word and backward-word are bound to the
keys ESCAPE-F and ESCAPE-B respectively. They are the same
is the ^F and ^B commands except that they operate on words.
The commands next-line and previous-line are examples are
commands that operate on lines. There are commands that
delete text in units of characters, words, and lines also.
delete-next-character deletes the character after point and
delete-previous-character deletes the character before
point. delete-next-word and delete-previous-word are the
same as the two delete character functions except that they
operate on words.
Sometimes it is useful to run a command a specific number of
times, for example to move down 10 lines, the sequence ESC-
10-^N will work, if the ^N is bound to the next-line
command. In general, ESCAPE followed by a number, followed
by a command, runs that command number times. This is
called giving the command a numeric argument, or providing a
prefix argument. Some of the commands ignore numeric
arguments, for example read-file, but most of the commands
use the numeric argument.
A region is defined as all the text between two buffer
positions. A mark provides a way to remember a position in
the buffer other than the point. The set-mark command sets
a mark to where the point is at the time the command is
invoked. Once a mark is set, the user can move the point
anywhere else and later use various commands to manipulate
Printed 6/20/83 4
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
the mark. Each buffer can have any number of marks but
usually two suffice. Each mark has a number differentiating
it from other marks. Providing a numeric argument to mark
command uses the mark whose number is the numeric argument.
If no argument is specified, the zero'th mark is assumed.
For example, to delete the region between mark 4 and the
point, the command ESC-4-^W will work (assuming delete-to-
killbuffer is bound to the key ^W).
It is sometimes necessary to get from one place in a buffer
to another quickly. Using the primitive motion commands
would work, but would be rather slow. Search commands
provide a quick and easy way to move over large portions of
text. The user is prompted for a string to search for. The
search starts from the point, so forward searches will not
find any matches that are before the point, and reverse
searches will not find any matches after the point. If the
search was forward and the editor manages to find the
string, the point moves to the end of the string. If the
search was backward and the editor finds the string, the
point moves to the beginning of the string. Otherwise the
user will be informed of the failure and left where he was.
Jove supports regular expressions also, but they are rather
complicated. For complete documentation see ed(1) in the
UPM. Another useful command is the replace-search command.
This command prompts the user for a search string, then
prompts for a replacement string, and then searches the
buffer for the search string replacing all occurrences with
the replacement string.
Printed 6/20/83 5
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
Here is a list of all the commands, with a short description
of each and the key that the command is initially bound to.
Prefix-1 ESC
The next character typed will be interpreted on the basis
that it was preceded by the command Prefix-1. This is one
of two such commands whose purpose in life is to increase
the number of commands that can be bound to keys and thus
easily invoked.
Prefix-2 ^X
The next character typed will be interpreted on the basis
that it was preceded by the command Prefix-2. This is one
of two such commands whose purpose in life is to increase
the number of commands that can be bound to keys and thus
easily invoked.
append-region [unbound]
Appends the region bounded by the point and mark to the
named file. If the file does not exist it is created.
backward-character ^B
Moves the point backward one character in the buffer. If
the point is at the beginning of the line, it moves it to
the end of the previous line.
backward-paren ESC-^B
This moves the point to the matching open parenthesis
(brace) of the close parenthesis (brace) just before the
point. If there is no match, an error is reported and the
point remains unchanged.
backward-word ESC-B
If in the middle of a word, the point moves to the beginning
of the word. Otherwise it moves the point to the beginning
of the previous word.
beginning-of-file ESC-<
Moves the point to the beginning of the current buffer so
that the character after the point is the first character of
the buffer.
beginning-of-line ^A
Moves the point to the beginning of the current line.
beginning-of-sentence ESC-A
Moves the point to the beginning of the current sentence.
beginning-of-window ESC-,
Moves the point to the first character in the window.
Printed 6/20/83 6
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
bind-macro-to-key [unbound]
Binds a macro to a key so that future hits on that key will
run the macro.
bind-to-key [unbound]
Binds a command to a key so that future hits on that key
will run the command. For example, the command next-line is
bound to the key ^N.
buffer-position [unbound]
Prints the line and column of the point in the current
buffer.
case-region-lower ^X-^L
Changes all the letters between the point and mark to lower
case.
case-region-upper ^X-^U
Changes all the letters between the point and mark to upper
case.
case-word-capitalize ESC-C
If the point is in the middle of a word, it capitalizes the
letter after the point and changes the rest of the word to
lower case. Otherwise it capitalizes the first letter of
the next word and changes the rest of this word to lower
case. In any case the point is left at the end of the word.
case-word-lower ESC-L
If the point is in the middle of a word, it changes the rest
of the word to lower case. Otherwise it changes the next
word to lower case. In either case the point is left at the
end of the effected word.
case-word-upper ESC-U
If the point is in the middle of a word, it changes the rest
of the word to upper case. Otherwise it changes the next
word to upper case. In either case the point is left at the
end of the effected word.
char-to-octal-insert [unbound]
Reads a character from the terminal and inserts its octal
value preceded by a back-slash '\', into the text at the
point. For example if the character ESC is typed, the
string \033 is inserted.
clear-and-redraw ESC-^L
Clears and redraws the screen without changing the screen
orientation. This is useful if the screen gets garbaged by
output from another program or by someone writing you.
Printed 6/20/83 7
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
compile-it ^X-^E
Writes all the modified buffers and runs the UNIX program
make into a buffer called Errors. After the make is
completed, the buffer is parsed for C type error messages to
be used by the next-error command.
copy-region ESC-W
Does a pretend kill of the region bounded by the point and
mark. The next call to yank will yank the region just
copied.
c-tab [unbound]
When in c-mode, the command c-tab is automatically bound to
the tab key, and when invoked, the point is tabbed to the
"right" place for C programs.
delete-next-char ^D
The character after the point is deleted moving the rest of
the line to the left one, leaving the point unchanged. If
at the end of the line, the line boundary is deleted joining
the current line with the next line.
delete-next-word ESC-D
If the point is in the middle of a word, it deletes to the
end of the word. Otherwise it deletes the entire next word.
In either case, the point doesn't move, and the deleted text
is saved in the kill buffer.
delete-other-windows ^X-1
Makes the current window the only window by deleting all the
other windows. The window grows to fill the screen as it is
when the editor starts up.
delete-previous-char DELETE
Deletes the character before the point moving the rest of
the line to the left one. If the point is at the beginning
of a line, the previous line is joined with the current line
and the point is moved to what used to be the end of the
previous line.
delete-previous-word ESC-DELETE
If the point is in the middle of a word, it deletes to the
beginning of that word. Otherwise it deletes the entire
previous word. In either case, the deleted text is saved in
the kill buffer.
delete-to-killbuffer ^W
Deletes all the text between the point and mark, saving it
in the kill-buffer. This is one of the the ways to move
text from place in the buffer to another. The yank command
will insert the most recently deleted text at the point.
Printed 6/20/83 8
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
Jove remembers 10 separate kills in a kill ring. The yank-
pop command can be used to go through the ring one at a
time.
delete-white-space ESC-\f1
Deletes all tabs and space around the point on the current
line. This does not work over line boundaries.
describe-command [unbound]
Prompts for the name of a command and describes what the
command does into a buffer.
describe-key [unbound]
Prompts for a key and prints the command that is bound to
that key.
delete-current-window ^X-D
If there is more than one window on the screen, the current
window is deleted and is moved to neighboring window. The
space from the deleted window is given to the new current
window.
end-of-file ESC->
Moves the point to the end of the buffer making the
character before the point the last character in the buffer.
end-of-line ^E
Moves the point to the end of the current line.
end-of-sentence ESC-E
Moves the point to the end of the sentence.
end-of-window ESC-.
Moves the point to the last character in the window.
erase-buffer [unbound]
Prompts for a buffer name, and deletes all the text in that
buffer. If the buffer is modified, the user is asked for
confirmation.
exchange-point-and-mark ^X-^X
Sets the specified mark to the point and set the point to
the mark. A mark is referenced by a numerical argument; if
none is given the zero'th mark is assumed.
execute-extended-command ESC-X
Prompts for a command to run using command completion. This
is how all commands would be run if not for the bind-to-key
command.
execute-keyboard-macro [unbound]
Printed 6/20/83 9
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
All the characters that were remembered with the start-
remembering command are executed as if they were typed at
the keyboard.
execute-macro [unbound]
This is the same as execute-keyboard-macro except that it
prompts for the name of a macro to execute.
exit-jove ^X-^C
Exits jove. It asks for confirmation if there are any
modified buffers which have not been saved.
filter-region [unbound]
Prompts for a UNIX command to send a region to. The region
will be replaced with the output from the command. For
example to format a C procedure, a region around the
procedure should be defined and the filter-region command
used to send the region through the UNIX C beautifier.
find-file ^X-^F
Prompts for a file to find. If that file is not already in
a buffer, it creates a new buffer and reads the file into
that buffer. If the file is already in another buffer, that
buffer will be selected instead. In any event the current
buffer becomes buffer with that file in it.
find-file-into-other-window ^X-4
Do a find file into another window. If there is only one
window, is split. If there is more than one window, one of
the windows that is not the current window is used instead.
find-tag ^X-^T
Finds the file with the C tag which is prompted for. The
UNIX program ctags(1) should be used to create a database
with the necessary information to find the file which
contains the tag. If the tag cannot be found, the point and
buffer are unchanged.
first-non-blank ESC-M
Moves the point to the first non blank character in the
current line.
forward-char ^F
Moves the point forward one character in the buffer. If at
the end of the current line the point is moved to the
beginning of the next line.
forward-paren ESC-^B
Moves the point to the matching close parenthesis (brace) of
the open parenthesis (brace) right after the point. If
there is no match, an error is reported and the point
Printed 6/20/83 10
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
remains unchanged.
forward-word ESC-F
If the point is in the middle of a word, it moves to the end
of the current word. Otherwise it moves to the end of the
next word.
four-times ^U
Multiple the numeric argument by four. The sequence ^U-^U-
^N runs the command next-line 16 times.
goto-line ESC-G
Moves the point to the numeric argument line in the buffer.
If no argument is supplied, the the point moves to the first
line in the buffer.
grow-window ^X-^
Makes the current window one line larger if it can. There
has to be more than one window, and the window which would
get smaller has to be big enough to get smaller.
i-search-forward [unbound]
Incremental search forward. See the EMACS Manual for TWENEX
Users if you care about this command. I do not have time to
explain it right now.
i-search-reverse [unbound]
Incremental search reverse. See the EMACS Manual for TWENEX
Users if you care about this command. I do not have time to
explain it right now.
insert-file ^X-^I
If the named file exists and can be read, its contents are
inserted into the current buffer at the point. Otherwise an
error is reported and the point is unchanged.
init-bindings [unbound]
Initialize the bindings to the way they were at the
beginning of the edit.
justify-paragraph ESC-J
Justifys a paragraph. Paragraphs are bounded by blank lines
or lines that begin with a period. The margin-length
variable determines the length of each line in the
paragraph.
kill-buffer ^X-K
Deletes a named buffer. This command is not reversible;
once the buffer is deleted, it is gone forever. It is
useful when the editor runs out of space and there is a
buffer which you do not care about.
Printed 6/20/83 11
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
kill-to-end-of-line ^K
Kill all the text from the point to the end of the line. If
the point is at the end of the line, the current line is
joined with the next line. If a numeric count is given, an
internal mark is set at the point, the point moves to the
beginning of a line count below the current line, and the
region is deleted to the kill-buffer. The saved test can be
yanked back with the yank command (see delete-to-
killbuffer). If this command is run several times in a row
all the kills are merged into the same kill ring entry, thus
running the yank command will yank all of them back instead
of just the last one.
list-buffers ^X-^B
Creates a buffer called Buffer list that contains a list of
all the buffers jove currently knows about. Each line tells
each buffer's number, type, file associated with it, its
name, and a * if the buffer is modified.
make-buffer-unmodified ESC-~
Makes the editor forget that the buffer has been modified.
The * on the mode line will disappear if it is there.
name-keyboard-macro [unbound]
A new macro is defined with the name supplied by the user.
The current definition of the keyboard macro is copied into
this new macro, making it possible change the keyboard macro
without losing the old version. Now it is possible to run
the new macro by binding the macro to a key, or with the
execute-macro command. Note that only named macros are
saved with the write-macros-to-file command, so to remember
macros from one jove to another, one must give the macro a
name, execute the write-macros-to-file command, and upon
invokation of a new jove, the read-macros-from-file" command
should be executed.
newline [unbound]
Divides the current line at the point moving the point to
the beginning of the newly created line. It is usually
bound to the return key.
newline-and-backup ^O
Divides the current line at the point like the newline
command, but leaves the point unchanged.
newline-and-indent [unbound]
Same as newline except that it inserts white space at the
beginning of the newline copying the indent of the previous
line.
next-error ^X-^N
Printed 6/20/83 12
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
Takes the next error message (as returned by the parse
commands), finds the file in which the error occurred, and
sets the the point to the line on which the error occurred.
The error message will be displayed at the top of the errors
buffer. (The compile-it command automatically runs the
parse-C-errors and the next-error commands).
next-line ^N
Moves the point to the next line keeping the column as close
to the current column as possible.
next-page ^V
Puts the bottom line of the window at the top of the window,
moving the point to the top of the window and to the
beginning of the line.
next-window ^X-N
Moves to the next window in the screen. If the current
window is the last window, it moves to the first window. It
is an error to move to the next window when there is only
one window on the screen.
number-lines-in-window [unbound]
Each line in the current window is displayed with its line
number to the left. The number isn't part of the buffer and
will disappear when this command is executed again (it
toggles).
page-next-window ESC-^V
This command does a next-page on the next window. If there
is only one window the editor complains.
paren-flash [unbound]
When the variable show-match is non-zero, the close
parenthesis/brace keys are bound to this command. When
invoked, this command inserts the character typed and
temporarily flashes to the matching open parenthesis/brace
for about one second.
parse-C-errors [unbound]
This command takes C compiler (or similar in format) errors
and sets the editor up for subsequent invocations of the
next-error command. Giving the UNIX command grep(1) the -n
option prints the output in the same format as the C
compiler, thus running this command into a buffer makes it
possible to parse its output. This is a very useful way to
look at all the occurrences of certain strings in several
files.
parse-LINT-errors [unbound]
This is the same as parse-C-errors excepts parses lint
Printed 6/20/83 13
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
errors.
pause-jove [unbound]
If the system has the Berkeley job control features, control
is returned to the superior shell. Otherwise an inferior
shell is spawned.
previous-line ^P
Moves the point to the previous line trying to keep the
column the same.
previous-page ESC-V
Moves the top line in the window to the bottom line leaving,
the point at the top of the window and at the beginning of
the line.
previous-window ^X-P
Move to the previous window in the screen. If currently in
the first window, moves to the last window. It is an error
to move to the previous window when there is only one window
on the screen.
print [unbound]
Prompts for a variable name and prints its value.
query-replace-search ESC-Q
Upon receipt of a search and replacement string, the editor
replaces all occurrences of the search string with the
replacement string. For each occurrence the editor asks the
user what to do. The choices are:
' ' to replace this occurrence.
DELETE to skip this occurrence.
'r' to recursive edit.
'p' to proceed to replace all occurrences.
RETURN to stop
When there are no more occurrences, the point is moves back
to its initial position. Recursive edit makes it possible
to temporarily suspend the query-replace-search, let the
user go off and do some editing, and then return to the
search after the editing is finished. Executing the command
exit-jove returns from the recursive edit.
quote-char ^Q
Quotes the next character typed for insertion. This is used
to insert special characters which normally would be
interpreted as commands.
read-file ^X-^R
Prompts for a file to read into the current buffer. It will
erase the old contents so if the buffer has been modified,
but not saved, jove complains and ask for confirmation.
Printed 6/20/83 14
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
read-macros-from-file [unbound]
Prompts for a file that was previously written with the
write-macros-to-file command, and reads them back into the
editor.
redraw-display ^L
Redraws the window with the current line in the middle. If
a numeric argument is provided the current line is moved to
the argument line. If the current line is in the same place
as before, the window is cleared and redrawn.
reinitialize-terminal
If the value of the variable allow-^S-and-^Q is changed,
this command should be called to make the necessary changes
to the terminal.
replace-search ESC-R
This is the same as query-replace-search except the editor
does not ask whether to replace it; it always does.
ring-the-bell ^G
Exactly what is says. Its useful when it is not apparent
what the editor is currently doing.
scroll-one-line-down ESC-Z
Scrolls the current window down one line. If the current
line moves off the bottom of the window, it is moved to the
middle of the window.
scroll-one-line-up ^Z
Scrolls the current window up one line. If the current line
moves off the bottom of the window, it is moved to the
middle of the window.
search-forward ^S
Prompts for a string to search for and searches for the next
instance of that string in the buffer (see searching above).
search-reverse ^R
Prompts for a string to search for and searches for the
previous instance of that string in the buffer (see
searching above).
select-buffer ^X-B
Prompts for a buffer name and makes that buffer the current
buffer. If the buffer does not exist a new buffer is
created with nothing in it. If a number is supplied instead
of a name and a buffer exists with that number, that buffer
is selected. Otherwise a new buffer is created with that
number as a name.
Printed 6/20/83 15
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
self-insert [very-bound]
This is bound to all the keys that should be inserted when
typed. This commands does not work unless bound to a key.
Running this command manually will probably cause a random
character to be inserted.
set [unbound]
Prompts for a variable name and a value, and sets the
variable to that value.
set-mark ^@
Sets a mark at the current buffer location. If given a
numeric argument, it sets a mark whose name is that number.
Otherwise it sets the zero'th mark.
shell-command ^X-!
Prompts for a UNIX shell command to be run placing the
output from the command into a buffer called Command
execution. If the a numeric argument is provided, the
buffer is left alone before the UNIX command is started.
Otherwise the buffer is emptied.
shell-command-to-buffer [unbound]
The same as shell-command except that it asks for a specific
buffer to place the output in instead of Command execution.
source [unbound]
This prompts for a file name which contains a bunch of
editor commands. These commands typically set variables or
bind commands to keys. Running source on a file which does
not have editor commands in it will likely cause the editor
to crash. This is a serious bug.
shrink-window [unbound]
Shrink the current window by one line if the resulting
window would not be too small. It is an error to run this
command when there is only one window.
spell-buffer [unbound]
Sends the entire buffer to the UNIX spell program. Jove
will go through the list of spelling errors and asks whether
or not a word is spelled correctly. If it is not, jove
remembers where each occurrence of the misspelled word is.
The point in the buffer being spelled is positioned at the
end of the current misspelled word. The next-error command
moves to the next occurrence of the current word, or to the
first occurrence of the next word.
split-current-window ^X-2
Splits the current window into two smaller windows, if the
resulting windows would not be too small. The two windows
Printed 6/20/83 16
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
have the same buffer associated with them, namely the one
that the original window had.
start-remembering [unbound]
This tells jove to start remembering all the following
keystrokes until the stop-remembering command is executed.
The saved commands are saved in the keyboard macro, and can
be re-executed with the execute-keyboard-macro command.
This is useful when it is necessary to run the same command
lots of times.
stop-remembering [unbound]
This terminates the definition of a macro. See start-
remembering for more details.
string-length ^X-C
Prints, on the message line, the number of characters
between two quotes. The point must be between two quotes or
the editor complains. This is useful for C programmers
especially.
suspend-jove [unbound]
Same as pause-jove.
text-insert [unbound]
When the variable text-fill is non-zero, the self-insert
keys are bound to this command. This inserts characters
like self-insert does but when the line gets to a certain
length, a newline is automatically inserted. This makes it
possible to type in a paper without having to remember to
hit return, i.e the editor does it automatically.
transpose-char ^T
Switches the characters on opposite sides of the point,
namely the character before the cursor and the character
under the cursor.
unbound [unbound]
The unbound function is bound to all the keys that don't run
commands. It is essentially a no-op.
vt100-arrow-keys [unbound]
This makes the arrow keys work on the vt100 terminal.
write-current-file ^X-^S
This writes the current buffer to the file associated with
the buffer, without asking. If there is currently no file
associated with the buffer, the editor complains. (See the
write-named-file command below).
write-macros-to-file [unbound]
Printed 6/20/83 17
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
Prompts for a file and writes all the current defined macros
to that file. The macros can be read back into the editor
with the read-macros-from-file command.
write-modified-files ^X-^M
Writes all the buffers that have been modified but not been
saved.
write-named-file ^X-^W
Prompts for a file name and writes the current buffer to
that file. If the file already exists and is not the current
file name, the user is informed and asked if he really wants
to do it. Writing a file erases the old contents of the
file.
write-region [unbound]
Takes the region between the point and mark and writes it to
a named file.
yank ^Y
Inserts, at the point, all the text that was most recently
deleted with a delete command that saves the text it deleted
to the kill ring. The point moves to the end of the
inserted region.
yank-pop ESC-Y
Goes through the kill ring inserting each entry one at a
time. The previous command has to have been the yank
command or the yank-pop command.
Printed 6/20/83 18
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
The following are list of variables which change the way the
editor behaves. All the variables, and the effect they have
on the behavior of the editor, are listed below. When
certain variables are set to non-zero values, jove prints
their abbreviations (in parentheses) on the mode line.
allow-^S-and-^Q
When set to non-zero, jove disables the stop (XOFF) and
start (XON) characters, thus making it possible to bind
editor commands to those keys. Most often, the ^S and ^Q
keys are the stop and start characters, which means when
this variable is set, search-forward can be bound to ^S, and
quote-char can be bound to ^Q, like they are supposed to be
bound.
auto-indent (AI)
This variable affects the way the RETURN key works. Normally
typing RETURN divides the current line at point moving point
down to the next line. That still happens in this mode but
the line is automatically indented the same as the previous
line. This is useful for structure programming languages
like C and PASCAL.
c-mode (C)
This mode the tab character and the }. Instead of just
inserting the tab, the editor determines where the tab ought
to be for the C language and tabs to there instead. The
same thing happens with the close brace. It is tabbed to
the right place and then inserted.
case-independent-search (CIS)
This affects the way search works. When in this mode, jove
ignores the difference between upper case and lower case so
A matches a as well as A.
internal-tabstop (not-shown)
This tells jove how many spaces a tab should take up when it
is printed. The default is 8.
magic (MA)
This mode makes regular expression available. This is not
the default because for new users because certain characters
in the search strijng do not always do what they normally
would.
make-all-at-once
Tells the editor to run make with the -k option when running
the compile-it command.
over-write (OV)
This mode changes the way self-inserting characters work.
Printed 6/20/83 19
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
Instead of pushing the rest of the line over, the character
after the point is replaced.
physical-tapstop
This tells jove how big the tabstops are for the specific
terminal. When the terminal is in tabs mode (see stty(1)),
jove will take advantage of that fact, and optimize the
cursor motion using tabs.
right-margin (not-shown)
This is used by the justify-paragram command, and says how
long it should try to make each line.
show-match (SM)
This affects the close parenthesis (brace) characters. When
one of those is typed in this mode it is inserted normally.
Then the cursor flashes to the matching open parenthesis
(brace) for one second and then move back to point. If the
match was not on the screen, nothing happens. If there is
no match the user is informed of the error.
single-scroll
This changes the way the editor behaves when the point moves
out of the range of a window. Instead of centering the line
containing the point, the editor leaves the line at the top,
or bottom of the screen (depending on which end the point
moved off). This is useful if the terminal is running at a
slow baud rate.
text-fill (TF)
When in this mode, the editor will automatically insert
carriage returns when lines reach the right margin. The
default right-margin is 72.
write-files-on-make (not-shown)
When non-zero, jove writes all the modified buffers when the
compile-it command is invoked (default is non-zero).
To put the editor on one of these modes, use the set
command. The set command prompts for one of the mode
variables to set. A non-zero value means the mode is on,
and a value or 0 means the mode is off.
JOVE (C-SM-AI) Buffer: jove.c "jove.c" *
If in these modes, typing } would cause the } to be indented
before inserted, and then the cursor would flash to the
matching {.
_F_I_L_E_S
/usr/tmp where the temporary files are stored.
Printed 6/20/83 20
JOVE(LSRHS) UNIX Programmer's Manual JOVE(LSRHS)
_S_E_E _A_L_S_O
edt(1), ed(1).
_D_I_A_G_N_O_S_T_I_C_S
Jove diagnostics are meant to be self explanatory.
_B_U_G_S
It doesn't garbage collect the tmp file so it could run out
of tmp space when it doesn't have to.
There should be one bind-to-key command that works for both
macros and built in commands.
There should be a way to abort read-file and the search
commands.
Jove should not blow up when it tries to source a file which
doesn't have editor commands in it.
Printed 6/20/83 21