+Alphabetical List of Commands and Variables
+
+:entry "abort-char" "Variable"
+This variable defines JOVE'S abort characer. When the abort character
+is typed, the current JOVE command is aborted. The default value is
+C-G.
+
+:entry "add-lisp-special" "Command"
+This command is to tell JOVE what identifiers require special
+indentation in lisp mode. Lisp functions like defun and let are two
+of the default functions that get treated specially. This is just a
+kludge to define some of your own. It prompts for the function name.
+
+:entry "allow-^S-and-^Q" "Variable"
+This variable, when set, tells JOVE that your terminal does not need
+to use the characters C-S and C-Q for flow control, and that it is
+okay to bind things to them. This variable should be set depending
+upon what kind of terminal you have.
+
+:entry "allow-bad-filenames" "Variable"
+If set, this variable permits filenames to contain "bad" characters
+such as those from the set *&%!"`[]{}. These files are harder to deal
+with, because the characters mean something to the shell. The default
+value is "off".
+
+:entry "append-region" "Command"
+This appends the region to a specified file. If the file does not
+already exist it is created.
+
+:entry "apropos" "Command"
+This types out all the commands, variables and macros with the
+specific keyword in their names. For each command and macro that
+contains the string, the key sequence that can be used to execute the
+command or macro is printed; with variables, the current value is
+printed. So, to find all the commands that are related to windows,
+you type
+
+ ESC X apropos window<Return>
+
+
+:entry "auto-case-abbrev" "Variable"
+When this variable is on (the default), word abbreviations are
+adjusted for case automatically. For example, if "jove" were the
+abbreviation for "jonathan's own version of emacs", then typing "jove"
+would give you "jonathan's own version of emacs", typing "Jove" would
+give you "Jonathan's own version of emacs", and typing "JOVE" would
+give you "Jonathan's Own Version of Emacs". When this variable is
+"off", upper and lower case are distinguished when looking for the
+abbreviation, i.e., in the example above, "JOVE" and "Jove" would not
+be expanded unless they were defined separately.
+
+:entry "auto-execute-command" "Command"
+This tells JOVE to execute a command automatically when a file whose
+name matches a specified pattern is visited. The first argument is
+the command you want executed and the second is a regular expression
+pattern that specifies the files that apply. For example, if you want
+to be in show-match-mode when you edit C source files (that is, files
+that end with ".c" or ".h") you can type
+
+ ESC X auto-execute-command show-match-mode .*.[ch]$
+
+
+:entry "auto-execute-macro" "Command"
+This is like "auto-execute-command" except you use it to execute
+macros automatically instead of built-in commands.
+
+:entry "auto-fill-mode" "Command"
+This turns on Auto Fill mode (or off if it's currently on) in the
+selected buffer. When JOVE is in Auto Fill mode it automatically
+breaks lines for you when you reach the right margin so you don't have
+to remember to hit Return. JOVE uses 78 as the right margin but you
+can change that by setting the variable "right-margin" to another
+value. See the "set" command to learn how to do this.
+
+:entry "auto-indent-mode" "Command"
+This turns on Auto Indent mode (or off if it's currently on) in the
+selected buffer. When JOVE is in Auto Indent mode, Return indents the
+new line to the same position as the line you were just on. This is
+useful for lining up C code (or any other language (but what else is
+there besides C?)). This is out of date because of the new command
+called "newline-and-indent" but it remains because of several
+"requests" on the part of, uh, enthusiastic and excitable users, that
+it be left as it is.
+
+:entry "background-color" "Variable"
+This specifies the background color of the screen (PC version only).
+The default value is 0, which stands for black.
+
+:entry "backward-character" "Command"
+This moves point backward over a single character. If point is at the
+beginning of the line it moves to the end of the previous line.
+
+:entry "backward-list" "Command"
+This moves backward over a list as opposed to an s-expression. The
+difference between this and "backward-s-expression" is that this first
+searchs for a ")" and then moves to the matching "(". This is useful
+when you're trying to find unmatched parens in a program.
+
+:entry "backward-paragraph" "Command"
+This moves point backward to the beginning of the current or previous
+paragraph. Paragraphs are bounded by lines that begin with a Period
+or Tab, or by blank lines; a change in indentation may also signal a
+break between paragraphs, except that JOVE allows the first line of a
+paragraph to be indented differently from the other lines.
+
+:entry "backward-s-expression" "Command"
+This moves point backward over a s-expression. It is just like
+"forward-s-expression" with a negative argument.
+
+:entry "backward-sentence" "Command"
+This moves point backward to the beginning of the current or previous
+sentence. JOVE considers the end of a sentence to be the characters
+".", "!" or "?" followed by a Return or by one or more spaces.
+
+:entry "backward-up-list" "Command"
+This is similar to "backward-s-expression" except it backs up and OUT
+of the enclosing s-expression. In other words, it moves backward to
+the "(" that would match a ")" if you were to type it right then.
+
+:entry "backward-word" "Command"
+This moves point backward to the beginning of the current or previous
+word.
+
+:entry "bad-filename-extensions" "Variable"
+This contains a list of words separated by spaces which are to be
+considered bad filename extensions, and so will not be counted in
+filename completion. The default is ".o" so if you have jove.c and
+jove.o in the same directory, the filename completion will not
+complain of an ambiguity because it will ignore jove.o.
+
+:entry "begin-kbd-macro" "Command"
+This starts defining the keyboard macro by remembering all your key
+strokes until you execute "end-kbd-macro," by typing "C-X )". Because
+of a bug in JOVE you shouldn't terminate the macro by typing "ESC X
+end-kbd-macro"; "end-kbd-macro" must be bound to "C-X )" in order to
+make things work correctly. To execute the remembered key strokes you
+type "C-X E" which runs the "execute-kbd-macro" command. Sometimes
+you may want a macro to accept different input each time it runs. To
+see how to do this, see the "make-macro-interactive" command.
+
+:entry "beginning-of-file" "Command"
+This moves point backward to the beginning of the buffer. This
+sometimes prints the "Point Pushed" message. If the top of the buffer
+isn't on the screen JOVE will set the mark so you can go back to where
+you were if you want.
+
+:entry "beginning-of-line" "Command"
+This moves point to the beginning of the current line.
+
+:entry "beginning-of-window" "Command"
+This moves point to the beginning of the current window. The sequence
+"ESC ," is the same as "ESC <" (beginning of file) except without the
+shift key on the "<", and can thus can easily be remembered.
+
+:entry "bind-keymap-to-key" "Command"
+This is the way to build nested keymaps. For example, when JOVE
+starts up, internally it does a
+
+ bind-keymap-to-key ESC-map ^[
+
+To make the arrow keys on vt100's work, you would do the following.
+
+ make-keymap vt100-map
+ bind-keymap-to-key vt100-map ^[[
+ bind-to-key next-line ^[[A
+ bind-to-key previous-line ^[[B
+ bind-to-key forward-character ^[[C
+ bind-to-key backward-character ^[[D
+
+I may have gotten the escape sequences wrong, but you get the general
+idea. Theoretically you can use these keymaps to bind arbitrarily
+long key sequences, like those generated by the SUN keyboards, but
+that is a bit of a pain because you will have to generate a bunch of
+keymaps by hand, almost one per key, because of the way the key
+sequences are organized. Eventually there will be a more general way
+to have these keymaps built for you.
+
+:entry "bind-macro-to-key" "Command"
+This is like "bind-to-key" except you use it to attach keys to named
+macros.
+
+:entry "bind-macro-to-word-abbrev" "Command"
+This command allows you to bind a macro to a previously defined word
+abbreviation. Whenever you type the abbreviation, it will first be
+expanded as an abbreviation, and then the macro will be executed.
+Note that if the macro moves around, you should set the mark first
+(C-@) and then exchange the point and mark last (C-X C-X).
+
+:entry "bind-to-key" "Command"
+This attaches a key to an internal JOVE command so that future hits on
+that key invoke that command. For example, to make "C-W" erase the
+previous word, you type "ESC X bind-to-key kill-previous-word C-W".
+
+:entry "buffer-position" "Command"
+This displays the current file name, current line number, total number
+of lines, percentage of the way through the file, and the position of
+the cursor in the current line.
+
+:entry "c-argument-indentation" "Variable"
+This variable describes how to indent lines which are part of nested
+expressions in C. The default is -1, which means to indent a
+continued line by lining it up with the first argument of the current
+expression. Otherwise, the line will be indented by c-argument-
+indentation characters past the indent of the first line of the
+expression. For example, the default value produces:
+ Typeout(fmt, itoa(bcount++), line_cnt(b, nbuf),
+ TypeNames[b->b_type],
+ IsModified(b) ? "*" : b->b_ntbf ? "+" : NullStr,
+ buf_width, b->b_name, filename(b));
+
+:entry "c-indentation-increment" "Variable"
+This defines a set of tabstops independent of the value of internal-
+tabstops and physical-tabstops. This value will be used in C mode,
+and JOVE will insert the correct number of spaces and Tabs to get the
+right behavior. For programmers that like to indent with 4 spaces,
+set this value to 4. Don't set internal-tabstops to 4 because that
+will not work anymore. Setting internal-tabstops to 4 tells JOVE to
+display Tabs as every 4 spaces. This will cause your programs to look
+terrible with anyone else who displays the file with normal tabstops
+at every 8 characters. Not to mention printing your program won't
+look right. But all that aside, if you set c-indentation-increment to
+8 (the default), and then set internal-tabstops to 4 as well, JOVE
+will insert TWO Tabs to get the indentation to 8, which is clearly not
+what you want.
+
+:entry "c-mode" "Command"
+This turns on C mode in the currently selected buffer. This is one of
+currently four possible major modes: Fundamental, Text, C, Lisp.
+When in C or Lisp mode, Tab, "}", and ")" behave a little differently
+from usual: They are indented to the "right" place for C (or Lisp)
+programs. In JOVE, the "right" place is simply the way the author
+likes it (but I've got good taste).
+
+:entry "case-character-capitalize" "Command"
+This capitalizes the character after point, i.e., the character under
+the cursor. If a negative argument is supplied that many characters
+"before" point are upper cased.
+
+:entry "case-ignore-search" "Variable"
+This variable, when set, tells JOVE to treat upper and lower case as
+the same when searching. Thus "jove" and "JOVE" would match, and
+"JoVe" would match either. The default value of this variable is
+"off".
+
+:entry "case-region-lower" "Command"
+This changes all the upper case letters in the region to their lower
+case equivalent.
+
+:entry "case-region-upper" "Command"
+This changes all the lower case letters in the region to their upper
+case equivalent.
+
+:entry "case-word-capitalize" "Command"
+This capitalizes the current word by making the current letter upper
+case and making the rest of the word lower case. Point is moved to
+the end of the word. If point is not positioned on a word it is first
+moved forward to the beginning of the next word. If a negative
+argument is supplied that many words "before" point are capitalized.
+This is useful for correcting the word just typed without having to
+move point to the beginning of the word yourself.
+
+:entry "case-word-lower" "Command"
+This lower-cases the current word and leaves point at the end of it.
+If point is in the middle of a word the rest of the word is converted.
+If point is not in a word it is first moved forward to the beginning
+of the next word. If a negative argument is supplied that many words
+"before" point are converted to lower case. This is useful for
+correcting the word just typed without having to move point to the
+beginning of the word yourself.
+
+:entry "case-word-upper" "Command"
+This upper-cases the current word and leaves point at the end of it.
+If point is in the middle of a word the rest of the word is converted.
+If point is not in a word it is first moved forward to the beginning
+of the next word. If a negative argument is supplied that many words
+"before" point are converted to upper case. This is useful for
+correcting the word just typed without having to move point to the
+beginning of the word yourself.
+
+:entry "cd" "Command"
+This changes the current directory.
+
+:entry "character-to-octal-insert" "Command"
+This inserts a Back-slash followed by the ascii value of the next
+character typed. For example, "C-G" inserts the string "\007".
+
+:entry "clear-and-redraw" "Command"
+This clears the entire screen and redraws all the windows. Use this
+when JOVE gets confused about what's on the screen, or when the screen
+gets filled with garbage characters or output from another program.
+
+:entry "comment-format" "Variable"
+This variable tells JOVE how to format your comments when you run the
+command "fill-comment." Its format is this:
+
+ <open pattern>%!<line header>%c<line trailer>%!<close pattern>
+
+The %!, %c, and %! must appear in the format; everything else is
+optional. A newline (represented by %n) may appear in the open or
+close patterns. %% is the representation for %. The default comment
+format is for C comments. See "fill-comment" for more.
+
+:entry "compile-it" "Command"
+This compiles your program by running the UNIX command "make" into a
+buffer, and automatically parsing the error messages that are created
+(if any). See the "parse-errors" command. To compile a C program
+without "make", use "C-U C-X C-E" and JOVE will prompt for a command
+to run instead of make. (And then the command you type will become
+the default command.) You can use this to parse the output from the C
+compiler or the "grep" or "lint" programs. See also "error-format-
+string" to make it possible to parse errors of a different format.
+
+:entry "continue-process" "Command"
+This sends SIGCONT to the current interactive process, "if" the
+process is currently stopped.
+
+:entry "copy-region" "Command"
+This takes all the text in the region and copies it onto the kill ring
+buffer. This is just like running "kill-region" followed by the
+"yank" command. See the "kill-region" and "yank" commands.
+
+:entry "current-error" "Command"
+This moves to the current error in the list of parsed errors. See the
+"next-error" and "previous-error" commands for more detailed
+information.
+
+:entry "date" "Command"
+This prints the date on the message line.
+
+:entry "dbx-format-string" "Variable"
+This is the default regular-expression search string used by JOVE to
+parse output from dbx running in a shell process. The default format
+string works when you type "where" or while you're stepping through a
+program, or when you reach a breakpoint. You shouldn't have to change
+this unless you are using gdb or some other symbolic debugger.
+
+:entry "define-global-word-abbrev" "Command"
+This defines a global abbreviation.
+
+:entry "define-macro" "Command"
+This provides a different mechanism for defining keyboard macros.
+Instead of gathering keystrokes and storing them into the "keyboard-
+macro" (which is how "start-kbd-macro" works), "define-macro" prompts
+for a macro name (terminated with Space, or Newline) and then for the
+actual macro body. If you wish to specify control characters in the
+macro, you may simply insert them (using the "quoted-insert" command)
+or by inserting the character '^' followed by the appropriate letter
+for that character (e.g., ^A would be the two characters '^' followed
+by 'A'). You may use Back-slash to prevent the '^' from being
+interpreted as part of a control character when you really wish to
+insert one (e.g., a macro body "\^foo" would insert the string "^foo"
+into the buffer, whereas the body "^foo" would be the same as typing
+^F and then inserting the string "oo"). See "write-macros-to-file" to
+see how to save macros.
+
+:entry "define-mode-word-abbrev" "Command"
+This defines a mode-specific abbreviation.
+
+:entry "delete-blank-lines" "Command"
+This deletes all the blank lines around point. This is useful when
+you previously opened many lines with "C-O" and now wish to delete the
+unused ones.
+
+:entry "delete-buffer" "Command"
+This deletes a buffer and frees up all the memory associated with it.
+Be careful(!) - once a buffer has been deleted it is gone forever.
+JOVE will ask you to confirm if you try to delete a buffer that needs
+saving. This command is useful for when JOVE runs out of space to
+store new buffers.
+
+:entry "delete-current-window" "Command"
+This deletes the current window and moves point into one of the
+remaining ones. It is an error to try to delete the only remaining
+window.
+
+:entry "delete-macro" "Command"
+This deletes a macro from the list of named macros. It is an error to
+delete the keyboard-macro. Once the macro is deleted it is gone
+forever. If you are about to save macros to a file and decide you
+don't want to save a particular one, delete it.
+
+:entry "delete-next-character" "Command"
+This deletes the character that's just after point (that is, the
+character under the cursor). If point is at the end of a line, the
+line separator is deleted and the next line is joined with the current
+one.
+
+:entry "delete-other-windows" "Command"
+This deletes all the other windows except the current one. This can
+be thought of as going back into One Window mode.
+
+:entry "delete-previous-character" "Command"
+This deletes the character that's just before point (that is, the
+character before the cursor). If point is at the beginning of the
+line, the line separator is deleted and that line is joined with the
+previous one.
+
+:entry "delete-white-space" "Command"
+This deletes all the Tabs and Spaces around point.
+
+:entry "describe-bindings" "Command"
+This types out a list containing each bound key and the command that
+gets invoked every time that key is typed. To make a wall chart of
+JOVE commands, set "send-typeout-to-buffer" to "on" and JOVE will
+store the key bindings in a buffer which you can save to a file and
+then print.
+
+:entry "describe-command" "Command"
+This prints some info on a specified command.
+
+:entry "describe-key" "Command"
+This waits for you to type a key and then tells the name of the
+command that gets invoked every time that key is hit. Once you have
+the name of the command you can use the "describe-command" command to
+find out exactly what it does.
+
+:entry "describe-variable" "Command"
+This prints some info on a specified variable.
+
+:entry "digit" "Command"
+This reads a numeric argument. When you type "ESC" followed by a
+number, "digit" keeps reading numbers until you type some other
+command. Then that command is executes with the numeric argument you
+specified.
+
+:entry "digit-1" "Command"
+This pretends you typed "ESC 1". This is useful for terminals that
+have keypads that send special sequences for numbers typed on the
+keypad as opposed to numbers typed from the keyboard. This can save
+having type "ESC" when you want to specify an argument.
+
+:entry "digit-2" "Command"
+This pretends you typed "ESC 2". This is useful for terminals that
+have keypads that send special sequences for numbers typed on the
+keypad as opposed to numbers typed from the keyboard. This can save
+having type "ESC" when you want to specify an argument.
+
+:entry "digit-3" "Command"
+This pretends you typed "ESC 3". This is useful for terminals that
+have keypads that send special sequences for numbers typed on the
+keypad as opposed to numbers typed from the keyboard. This can save
+having type "ESC" when you want to specify an argument.
+
+:entry "digit-4" "Command"
+This pretends you typed "ESC 4". This is useful for terminals that
+have keypads that send special sequences for numbers typed on the
+keypad as opposed to numbers typed from the keyboard. This can save
+having type "ESC" when you want to specify an argument.
+
+:entry "digit-5" "Command"
+This pretends you typed "ESC 5". This is useful for terminals that
+have keypads that send special sequences for numbers typed on the
+keypad as opposed to numbers typed from the keyboard. This can save
+having type "ESC" when you want to specify an argument.
+
+:entry "digit-6" "Command"
+This pretends you typed "ESC 6". This is useful for terminals that
+have keypads that send special sequences for numbers typed on the
+keypad as opposed to numbers typed from the keyboard. This can save
+having type "ESC" when you want to specify an argument.
+
+:entry "digit-7" "Command"
+This pretends you typed "ESC 7". This is useful for terminals that
+have keypads that send special sequences for numbers typed on the
+keypad as opposed to numbers typed from the keyboard. This can save
+having type "ESC" when you want to specify an argument.
+
+:entry "digit-8" "Command"
+This pretends you typed "ESC 8". This is useful for terminals that
+have keypads that send special sequences for numbers typed on the
+keypad as opposed to numbers typed from the keyboard. This can save
+having type "ESC" when you want to specify an argument.
+
+:entry "digit-9" "Command"
+This pretends you typed "ESC 9". This is useful for terminals that
+have keypads that send special sequences for numbers typed on the
+keypad as opposed to numbers typed from the keyboard. This can save
+having type "ESC" when you want to specify an argument.
+
+:entry "digit-0" "Command"
+This pretends you typed "ESC 0". This is useful for terminals that
+have keypads that send special sequences for numbers typed on the
+keypad as opposed to numbers typed from the keyboard. This can save
+having type "ESC" when you want to specify an argument.
+
+:entry "dirs" "Command"
+This prints out the directory stack. See the "cd", "pushd", "popd"
+commands for more info.
+
+:entry "disable-biff" "Variable"
+When this is set, JOVE disables biff when you're editing and enables
+it again when you get out of JOVE, or when you pause to the parent
+shell or push to a new shell. (This means arrival of new mail will not
+be immediately apparent but will not cause indiscriminate writing on
+the display). The default is "off".
+
+:entry "display-bad-filenames" "Variable"
+This variable affects only filename completion, in particular, what
+happens when "?" is typed while prompting for a file. When this
+variable is ON, any files that end with one of the extensions defined
+by the variable "bad-filename-extensions" will be displayed with an
+"!" in front of their names. When "display-bad-filenames" is OFF the
+files will not be displayed at all. The default value is on.
+
+:entry "down-list" "Command"
+This is the opposite of "backward-up-list." It's not clear to me that
+this command serves any useful purpose in life. Try it out, and let
+me know what you think.
+
+:entry "dstop-process" "Command"
+Send the "dsusp" character to the current process. This is the
+character that suspends a process on the next read from the terminal.
+Most people have it set to C-Y. This only works if you have the
+interactive process feature, and if you are in a buffer bound to a
+process.
+
+:entry "edit-word-abbrevs" "Command"
+This creates a buffer with a list of each abbreviation and the phrase
+it expands into, and enters a recursive edit to let you change the
+abbreviations or add some more. The format of this list is
+"abbreviation:phrase" so if you add some more you should follow that
+format. It's probably simplest just to copy some already existing
+abbreviations and edit them. When you are done you type "C-X C-C" to
+exit the recursive edit.
+
+:entry "end-kbd-macro" "Command"
+This stops the definition of the keyboard macro. Because of a bug in
+JOVE, this must be bound to "C-X )", or some key sequence which is one
+or two characters long. Anything else will not work properly.
+
+:entry "end-of-file" "Command"
+This moves point forward to the end of the buffer. This sometimes
+prints the "Point Pushed" message. If the end of the buffer isn't on
+the screen JOVE will set the mark so you can go back to where you were
+if you want.
+
+:entry "end-of-line" "Command"
+This moves point to the end of the current line. If the line is too
+long to fit on the screen JOVE will scroll the line to the left to
+make the end of the line visible. The line will slide back to its
+normal position when you move backward past the leftmost visible
+character or when you move off the line altogether.
+
+:entry "end-of-window" "Command"
+This moves point to the last character in the window.
+
+:entry "eof-process" "Command"
+Sends EOF to the current interactive process. This only works on
+versions of JOVE running under versions of UNIX with pty's.
+
+:entry "erase-buffer" "Command"
+This erases the contents of the specified buffer. This is like
+"delete-buffer" except it only erases the contents of the buffer, not
+the buffer itself. If you try to erase a buffer that needs saving you
+will be asked to confirm it.
+
+:entry "error-format-string" "Variable"
+This is the error format string that is used by "parse-errors" to find
+the error messages in a buffer. The way it works is by using this
+string as a JOVE regular expression search string, where the \('s and
+\)'s regular expression operators are used to pick out the file name
+and line number from the line containing an error message. For
+instance, a typical error message might look like this:
+
+ "file.c", line 540: missing semi-colon
+
+For strings of this format, an appropriate value for "error-format-
+string" would be something like this:
+
+ ^"\([^"]*\)", line \([0-9]*\):
+
+What this means is, to find an error message, search for a line
+beginning with a double-quote. Then it says that all the following
+characters up to another double-quote should be remembered as one
+unit, namely the filename that the error is in (that's why the first
+set of parens are surrounding it). Then it says that after the
+filename there will be the string ", line " followed by a line number,
+which should be remembered as a single unit (which is why the second
+set of parens is around that). The only constraints on the error
+messages is that the file name and line number appear on the same
+line, and that the file name appears before the line number. Most
+compilers seem to do this anyway, so this is not an unreasonable
+restriction.
+
+If you do not know how to use regular expressions then this variable
+will be hard for you to use. Also note that you can look at the
+default value of this variable by printing it out, but it is a really
+complicated string because it is trying to accommodate the outputs of
+more than one compiler at a time.
+
+:entry "error-window-size" "Variable"
+This is the percentage of the screen to use for the error-window on
+the screen. When you execute "compile-it," "error-window-size"
+percent of the screen will go to the error window. If the window
+already exists and is a different size, it is made to be this size.
+The default value is 20%.
+
+:entry "exchange-point-and-mark" "Command"
+This moves point to mark and makes mark the old point. This is for
+quickly moving from one end of the region to another.
+
+:entry "execute-kbd-macro" "Command"
+This executes the keyboard macro. If you supply a numeric argument
+the macro is executed that many times.
+
+:entry "execute-macro" "Command"
+This executes a specified macro. If you supply a numeric argument the
+macro is executed that many times.
+
+:entry "execute-named-command" "Command"
+This is the way to execute a command that isn't bound to any key.
+When you are prompted with ": " you can type the name of the command.
+You don't have to type the entire name. Once the command is
+unambiguous you can type Space and JOVE will fill in the rest for you.
+If you are not sure of the name of the command, type "?" and JOVE will
+print a list of all the commands that you could possibly match given
+what you've already typed. If you don't have any idea what the
+command's name is but you know it has something to do with windows
+(for example), you can do "ESC X apropos window" and JOVE will print a
+list of all the commands that are related to windows. If you find
+yourself constantly executing the same commands this way you probably
+want to bind them to keys so that you can execute them more quickly.
+See the "bind-to-key" command.
+
+:entry "exit-jove" "Command"
+This exits JOVE. If any buffers need saving JOVE will print a warning
+message and ask for confirmation. If you leave without saving your
+buffers all your work will be lost. If you made a mistake and really
+do want to exit then you can. If you are in a recursive editing level
+"exit-jove" will return you from that.
+
+:entry "expand-environment-variables" "Variable"
+When this variable is on JOVE will try to expand any strings of the
+form "$var" into the value of the environment variable "var" when in
+the minibuffer. For example, if you type $HOME/.joverc, "$HOME" will
+be replaced with you home directory. The default value is off.
+
+:entry "file-creation-mode" "Variable"
+This variable has an octal value. It contains the mode (see
+"chmod(1)" ) with which files should be created. This mode gets
+modified by your current umask setting (see "umask(1)" ). The default
+value is usually "0666" or "0644."
+
+:entry "files-should-end-with-newline" "Variable"
+This variable indicates that all files should always have a newline at
+the end. This is often necessary for line printers and the like.
+When set, if JOVE is writing a file whose last character is not a
+newline, it will add one automatically.
+
+:entry "fill-comment" "Command"
+This command fills in your C comments to make them pretty and
+readable. This filling is done according the variable "comment-
+format."
+
+ /*
+ * the default format makes comments like this.
+ */
+
+This can be changed by changing the format variable. Other languages
+may be supported by changing the format variable appropriately. The
+formatter looks backwards from dot for an open comment symbol. If
+found, all indentation is done relative the position of the first
+character of the open symbol. If there is a matching close symbol,
+the entire comment is formatted. If not, the region between dot and
+the open symbol is reformatted.
+
+:entry "fill-paragraph" "Command"
+This rearranges words between lines so that all the lines in the
+current paragraph extend as close to the right margin as possible,
+ensuring that none of the lines will be greater than the right margin.
+The default value for "right-margin" is 78, but can be changed with
+the "set" and "right-margin-here" commands. JOVE has a complicated
+algorithm for determining the beginning and end of the paragraph. In
+the normal case JOVE will give all the lines the same indent as they
+currently have, but if you wish to force a new indent you can supply a
+numeric argument to "fill-paragraph" (e.g., by typing C-U ESC J) and
+JOVE will indent each line to the column specified by the "left-
+margin" variable. See also the "left-margin" variable and "left-
+margin-here" command.
+
+:entry "fill-region" "Command"
+This is like "fill-paragraph," except it operates on a region instead
+of just a paragraph.
+
+:entry "filter-region" "Command"
+This sends the text in the region to a UNIX command, and replaces the
+region with the output from that command. For example, if you are
+lazy and don't like to take the time to write properly indented C
+code, you can put the region around your C file and "filter-region" it
+through "cb," the UNIX C beautifier. If you have a file that contains
+a bunch of lines that need to be sorted you can do that from inside
+JOVE too, by filtering the region through the "sort" UNIX command.
+Before output from the command replaces the region JOVE stores the old
+text in the kill ring, so if you are unhappy with the results you can
+easily get back the old text with "C-Y".
+
+:entry "find-file" "Command"
+This visits a file into its own buffer and then selects that buffer.
+If you've already visited this file in another buffer, that buffer is
+selected. If the file doesn't yet exist, JOVE will print "(New file)"
+so that you know.
+
+:entry "find-tag" "Command"
+This finds the file that contains the specified tag. JOVE looks up
+tags by default in the "tags" file in the current directory. You can
+change the default tag name by setting the "tag-file" variable to
+another name. If you specify a numeric argument to this command, you
+will be prompted for a tag file. This is a good way to specify
+another tag file without changing the default. If the tag cannot be
+found the error is reported and point stays where it is.
+
+:entry "find-tag-at-point" "Command"
+This finds the file that contains the tag that point is currently on.
+See "find-tag."
+
+:entry "first-non-blank" "Command"
+This moves point back to the indent of the current line.
+
+:entry "foreground-color" "Variable"
+This specifies the foreground color of the screen (PC version only).
+The default is 1, which stands for white. The attribute used for
+writing to the screen is formed by (bg&7)<<4 & (fg&7).
+
+:entry "forward-character" "Command"
+This moves forward over a single character. If point is at the end of
+the line it moves to the beginning of the next one.
+
+:entry "forward-list" "Command"
+This is like "forward-s-expression" except it moves over lists ONLY.
+What this does is search for the next "(" and then move to the
+matching ")". This is useful for when you are trying to find
+mismatched parentheses in a program.
+
+:entry "forward-paragraph" "Command"
+This moves point forward to the end of the current or next paragraph.
+Paragraphs are bounded by lines that begin with a Period or Tab, or by
+blank lines; a change in indentation may also signal a break between
+paragraphs, except that JOVE allows the first line of a paragraph to
+be indented differently from the other lines.
+
+:entry "forward-s-expression" "Command"
+This moves point forward over a s-expression. If the first
+significant character after point is "(", this moves past the matching
+")". If the character begins an identifier, this moves just past it.
+This is mode dependent, so this will move over atoms in LISP mode and
+C identifiers in C mode. JOVE also matches "{".
+
+:entry "forward-sentence" "Command"
+This moves point forward to the end of the current or next sentence.
+JOVE considers the end of a sentence to be the characters ".", "!" or
+"?" followed by a Return, or one or more spaces.
+
+:entry "forward-word" "Command"
+This moves point forward to the end of the current or next word.
+
+:entry "fundamental-mode" "Command"
+This sets the major mode to Fundamental. This affects what JOVE
+considers as characters that make up words. For instance, Single-
+quote is not part of a word in Fundamental mode, but is in Text mode.
+
+:entry "gather-numeric-argument" "Command"
+This command is one of two ways to specify a numeric argument to a
+command. It's usually bound to C-U. Typing C-U once means, Do the
+next command 4 times. Typing C-U twice will do the next command 16
+times, and so on. If at any point you type a number, then that number
+will be used instead of 4. For instance, C-U 3 5 means do the next
+command 35 times.
+
+:entry "goto-line" "Command"
+If a numeric argument is supplied point moves to the beginning of that
+line. If no argument is supplied one is prompted for.
+
+:entry "goto-window-with-buffer" "Command"
+This command prompts for a buffer name and then selects that buffer.
+If the buffer is currently being displayed in one of the windows, that
+window is selected instead.
+
+:entry "grind-s-expr" "Command"
+When point is positioned on a "(", this re-indents that LISP
+expression.
+
+:entry "grow-window" "Command"
+This makes the current window one line bigger. This only works when
+there is more than one window and provided there is room to change the
+size.
+
+:entry "handle-tab" "Command"
+This handles indenting to the "right" place in C and Lisp mode, and
+just inserts itself in Text mode.
+
+:entry "i-search-forward" "Command"
+Incremental search. Like search-forward except that instead of
+prompting for a string and searching for that string all at once, it
+accepts the string one character at a time. After each character you
+type as part of the search string, it searches for the entire string
+so far. When you like what it found, type the Return key to finish
+the search. You can take back a character with DEL and the search
+will back up to the position before that character was typed. C-G
+aborts the search.
+
+:entry "i-search-reverse" "Command"
+Incremental search. Like search-reverse except that instead of
+prompting for a string and searching for that string all at once, it
+accepts the string one character at a time. After each character you
+type as part of the search string, it searches for the entire string
+so far. When you like what it found, type the Return key to finish
+the search. You can take back a character with DEL and the search
+will back up to the position before that character was typed. C-G
+aborts the search.
+
+:entry "i-shell-command" "Command"
+This is like "shell-command" except it lets you continue with your
+editing while the command is running. This is really useful for long
+running commands with sporadic output. See the manual for information
+on how to use interactive processes.
+
+:entry "insert-file" "Command"
+This inserts a specified file into the current buffer at point. Point
+is positioned at the beginning of the inserted file.
+
+:entry "internal-tabstop" "Variable"
+The number of spaces JOVE should print when it displays a tab
+character. The default value is 8.
+
+:entry "interrupt-character" "Variable"
+This is set to the character that interrupts JOVE (with a signal) no
+matter what JOVE is doing. It's main use is for interrupting non-
+interactive processes, but it also has uses for debugging.
+Unfortunately there is no way to turn off the interrupt character.
+
+:entry "interrupt-process" "Command"
+This sends the interrupt character (usually C-C) to the interactive
+process in the current buffer. This is only for versions of JOVE that
+have the interactive processes feature. This only works when you are
+inside a buffer that's attached to a process.
+
+:entry "kill-next-word" "Command"
+This kills the text from point to the end of the current or next word.
+
+:entry "kill-previous-word" "Command"
+This kills the text from point to the beginning of the current or
+previous word.
+
+:entry "kill-process" "Command"
+This command prompts for a buffer name or buffer number (just as
+select-buffer does) and then sends the process in that buffer a kill
+signal (9).
+
+:entry "kill-region" "Command"
+This deletes the text in the region and saves it on the kill ring.
+Commands that delete text but save it on the kill ring all have the
+word "kill" in their names. Type "C-Y" to yank back the most recent
+kill.
+
+:entry "kill-s-expression" "Command"
+This kills the text from point to the end of the current or next s-
+expression.
+
+:entry "kill-some-buffers" "Command"
+This goes through all the existing buffers and asks whether or not to
+kill them. If you decide to kill a buffer, and it turns out that the
+buffer is modified, JOVE will offer to save it first. This is useful
+for when JOVE runs out of memory to store lines (this only happens on
+PDP-11's) and you have lots of buffers that you are no longer using.
+
+:entry "kill-to-beginning-of-sentence" "Command"
+This kills from point to the beginning of the current or previous
+sentence.
+
+:entry "kill-to-end-of-line" "Command"
+This kills from point to the end of the current line. When point is
+at the end of the line the line separator is deleted and the next line
+is joined with current one. If a numeric argument is supplied that
+many lines are killed; if the argument is negative that many lines
+"before" point are killed; if the argument is zero the text from point
+to the beginning of the line is killed.
+
+:entry "kill-to-end-of-sentence" "Command"
+This kills from point to the end of the current or next sentence. If
+a negative numeric argument is supplied it kills from point to the
+beginning of the current or previous sentence.
+
+:entry "left-margin" "Variable"
+This is how far lines should be indented when auto-indent mode is on,
+or when the "newline-and-indent" command is run (usually by typing
+LineFeed). It is also used by fill-paragraph and auto-fill mode. If
+the value is zero (the default) then the left margin is determined
+from the surrounding lines.
+
+:entry "left-margin-here" "Command"
+This sets the "left-margin" variable to the current position of point.
+This is an easy way to say, "Make the left margin begin here," without
+having to count the number of spaces over it actually is.
+
+:entry "lisp-mode" "Command"
+This turns on Lisp mode. Lisp mode is one of four mutually exclusive
+major modes: Fundamental, Text, C, and Lisp. In Lisp mode, the
+characters Tab and ) are treated specially, similar to the way they
+are treated in C mode. Also, Auto Indent mode is affected, and
+handled specially.
+
+:entry "list-buffers" "Command"
+This types out a list containing various information about each
+buffer. Right now that list looks like this:
+
+ (* means the buffer needs saving)
+ NO Lines Type Name File
+ -- ----- ---- ---- ----
+ 1 1 File Main [No file]
+ 2 1 Scratch * Minibuf [No file]
+ 3 519 File * commands.doc commands.doc
+
+The first column lists the buffer's number. When JOVE prompts for a
+buffer name you can either type in the full name, or you can simply
+type the buffer's number. The second column is the number of lines in
+the buffer. The third says what type of buffer. There are four
+types: "File", "Scratch", "Process", "I-Process". "File" is simply a
+buffer that holds a file; "Scratch" is for buffers that JOVE uses
+internally; "Process" is one that holds the output from a UNIX
+command; "I-Process" is one that has an interactive process attached
+to it. The next column contains the name of the buffer. And the last
+column is the name of the file that's attached to the buffer. In this
+case, both Minibuf and commands.doc have been changed but not yet
+saved. In fact Minibuf won't be saved since it's an internal JOVE
+buffer that I don't even care about.
+
+:entry "list-processes" "Command"
+This makes a list somewhat like "list-buffers" does, except its list
+consists of the current interactive processes. Right now the list
+looks like this:
+
+ Buffer Status Pid Command
+ ------ ------ --- -------
+ *shell* Running 18415shell
+ fgrep Done 18512 fgrep -n Buffer *.c
+
+The first column has the name of the buffer to which the process is
+attached. The second has the status of the process; if a process has
+exited normally the status is "Done" as in fgrep; if the process
+exited with an error the status is "Exit N" where N is the value of
+the exit code; if the process was killed by some signal the status is
+the name of the signal that was used; otherwise the process is
+running. The last column is the name of the command that is being
+run.
+
+:entry "macify" "Variable"
+When this variable is on, JOVE will use the standard Macintosh file-
+selector dialog in place of the traditional JOVE minibuffer. (Mac
+version only)
+
+:entry "mail-check-frequency" "Variable"
+This is how often (in seconds) JOVE should check your mailbox for
+incoming mail. If you set this to ZERO JOVE won't check for new mail.
+See also the "mailbox" and "disable-biff" variables.
+
+:entry "mailbox" "Variable"
+Set this to the full pathname of your mailbox. JOVE will look here to
+decide whether or not you have any unread mail. This defaults to
+/usr/spool/mail/$USER, where $USER is set to your login name.
+
+:entry "make-backup-files" "Variable"
+If this variable is set, then whenever JOVE writes out a file, it will
+move the previous version of the file (if there was one) to
+"#filename". This is often convenient if you save a file by accident.
+The default value of this variable is "off". "Note:" this is an
+optional part of JOVE, and your guru may not have it enabled, so it
+may not work.
+
+:entry "make-buffer-unmodified" "Command"
+This makes JOVE think the selected buffer hasn't been changed even if
+it has. Use this when you accidentally change the buffer but don't
+want it considered changed. Watch the mode line to see the *
+disappear when you use this command.
+
+:entry "make-keymap" "Command"
+This creates an empty keymap with a name you supply. That name can be
+used to reference the keymap in other commands, such as bind-keymap-
+to-key.
+
+:entry "make-macro-interactive" "Command"
+This command is meaningful only while you are defining a keyboard
+macro, and when you are in the minibuffer. Ordinarily, when a command
+in a macro definition requires a trailing text argument (file name,
+search string, etc.), the argument you supply becomes part of the
+macro definition. If you want to be able to supply a different
+argument each time the macro is used, then while you are defining it,
+you should give the make-macro-interactive command just before typing
+the argument which will be used during the definition process. Note:
+you must bind this command to a key in order to use it; you can't say
+"ESC X make-macro-interactive".
+
+:entry "mark-threshold" "Variable"
+This variable contains the number of lines point may move by before
+the mark is set. If, in a search or something, point moves by more
+than this many lines, the mark is set so that you may return easily.
+The default value of this variable is 22 (one screenful, on most
+terminals).
+
+:entry "marks-should-float" "Variable"
+When this variable is "off", the position of a mark is remembered as a
+line number within the buffer and a character number within the line.
+If you add or delete text before the mark, it will no longer point to
+the text you marked originally because that text is no longer at the
+same line and character number. When this variable is "on", the
+position of a mark is adjusted to compensate for each insertion and
+deletion. This makes marks much more sensible to use, at the cost of
+slowing down insertion and deletion somewhat. The default value is
+"on".
+
+:entry "match-regular-expressions" "Variable"
+When set, JOVE will match regular expressions in search patterns.
+This makes special the characters ., *, [, ], ^, and $, and the two-
+character sequences \<, \>, \{, \} and \|. See the "ed(1)" manual
+page, the tutorial "Advanced Editing in UNIX", and the section above
+"Searching with Regular Expressions" for more information.
+
+:entry "meta-key" "Variable"
+You should set this variable to "on" if your terminal has a real Meta
+key. If your terminal has such a key, then a key sequence like ESC Y
+can be entered by holding down Meta and typing Y. NOTE: In some
+systems, this disables interrupting noninteractive shell commands.
+
+:entry "mode-line" "Variable"
+The format of the mode line can be determined by setting this
+variable. The items in the line are specified using a format similar
+to that used by printf(3), with the special things being marked as
+"%x". Digits may be used between the 'x' may be:
+
+ C check for new mail, and displays "[New mail]" if there
+ is any (see also the mail-check-interval and disable-biff
+ variables)
+ F the current file name, with leading path stripped
+ M the current list of major and minor modes
+ b the current buffer name
+ c the fill character (-)
+ d the current directory
+ e extra space in modeline is distributed evenly
+ among the places %e is used (used for justifying,
+ separating, or centering parts of the modeline)
+ f the current file name
+ l the current load average (updated automatically)
+ mxy x, when the buffer is modified or y, when not
+ n the current buffer number
+ p interactive process status for process windows
+ s space, but only if previous character is not a space
+ t the current time (updated automatically)
+ w a '>' for windows which are scrolled left
+ [ ] the square brackets printed when in a recursive edit
+ ( ) items enclosed in %( ... %) will only be printed on
+ the bottom mode line, rather than copied when the
+ window is split
+
+In addition, any other character is simply copied into the mode line.
+Characters may be escaped with a backslash. To get a feel for all
+this, try typing "ESC X print mode-line" and compare the result with
+your current mode line.
+
+:entry "mode-line-color" "Variable"
+This specifies the color of the modeline (PC version only). Its
+default value is 0, and in that case it is drawn in reverse video. If
+it has any other value, this value is used as the attribute in the
+Bios calls.
+
+:entry "mode-line-should-standout" "Variable"
+If set, the mode line will be printed in reverse video, if your
+terminal supports it. The default for this variable is "off".
+
+:entry "name-kbd-macro" "Command"
+This copies the keyboard macro and gives it a name freeing up the
+keyboard macro so you can define some more. Keyboard macros with
+their own names can be bound to keys just like built in commands can.
+See the "define-macro," "source" and "write-macros-to-file" commands.
+
+:entry "newline" "Command"
+This divides the current line at point moving all the text to the
+right of point down onto the newly created line. Point moves down to
+the beginning of the new line.
+
+:entry "newline-and-backup" "Command"
+This divides the current line at point moving all the text to the
+right of point down onto the newly created line. The difference
+between this and "newline" is that point does not move down to the
+beginning of the new line.
+
+:entry "newline-and-indent" "Command"
+This behaves the same was as Return does when in Auto Indent mode.
+This makes Auto Indent mode obsolete but it remains in the name of
+backward compatibility.
+
+:entry "next-error" "Command"
+This moves to the next error in the list of errors that were parsed
+with "parse-errors." In one window the list of errors is shown with
+the current one always at the top. In another window is the file that
+contains the error. Point is positioned in this window on the line
+where the error occurred.
+
+:entry "next-line" "Command"
+This moves down to the next line.
+
+:entry "next-page" "Command"
+This displays the next page of the buffer by taking the bottom line of
+the window and redrawing the window with it at the top. If there
+isn't another page in the buffer JOVE rings the bell. If a numeric
+argument is supplied the screen is scrolled up that many lines; if the
+argument is negative the screen is scrolled down.
+
+:entry "next-window" "Command"
+This moves into the next window. Windows live in a circular list so
+when you're in the bottom window and you try to move to the next one
+you are moved to the top window. It is an error to use this command
+with only one window.
+
+:entry "number-lines-in-window" "Command"
+This displays the line numbers for each line in the buffer being
+displayed. The number isn't actually part of the text; it's just
+printed before the actual buffer line is. To turn this off you run
+the command again; it toggles.
+
+:entry "over-write-mode" "Command"
+This turns Over Write mode on (or off if it's currently on) in the
+selected buffer. When on, this mode changes the way the self-
+inserting characters work. Instead of inserting themselves and
+pushing the rest of the line over to the right, they replace or over-
+write the existing character. Also, DEL replaces the character before
+point with a space instead of deleting it. When Over Write mode is on
+"OvrWt" is displayed on the mode line.
+
+:entry "page-next-window" "Command"
+This displays the next page in the next window. This is exactly the
+same as "C-X N C-V C-X P".
+
+:entry "paren-flash" "Command"
+This handles the C mode curly brace indentation, the Lisp mode paren
+indentation, and the Show Match mode paren/curly brace/square bracket
+flashing.
+
+:entry "paren-flash-delay" "Variable"
+How long, in tenths of seconds, JOVE should pause on a matching
+parenthesis in "Show" mode. The default is 5.
+
+:entry "parse-errors" "Command"
+This takes the list of C compilation errors (or output from another
+program in the same format) in the current buffer and parses them for
+use with the "next-error" and "previous-error" and "current-error"
+commands. This is a very useful tool and helps with compiling C
+programs and when used in conjunction with the "grep" UNIX command
+very helpful in making changes to a bunch of files. This command
+understands errors produced by cc, cpp, and lint; plus any other
+program with the same format (e.g., "grep -n"). JOVE visits each file
+that has an error and remembers each line that contains an error. It
+doesn't matter if later you insert or delete some lines in the buffers
+containing errors; JOVE remembers where they are regardless.
+"current-error" is automatically executed after one of the parse
+commands, so you end up at the first error. See also "error-format-
+string" to make it possible to parse errors of a different format.
+
+:entry "parse-spelling-errors-in-buffer" "Command"
+This parses a list of words in the current buffer and looks them up in
+another buffer that you specify. This will probably go away soon.
+
+:entry "pause-jove" "Command"
+This stops JOVE and returns control to the parent shell. This only
+works for users using the C-shell, and on systems that have the job
+control facility. To return to JOVE you type "fg" to the C-shell.
+
+:entry "physical-tabstop" "Variable"
+How many spaces your terminal prints when it prints a tab character.
+
+:entry "pop-mark" "Command"
+This gets executed when you run "set-mark" with a numeric argument.
+JOVE remembers the last 16 marks and you use "pop-mark" to go backward
+through the ring of marks. If you execute "pop-mark" enough times you
+will eventually get back to where you started.
+
+:entry "popd" "Command"
+This pops one entry off the directory stack. Entries are pushed with
+the "pushd" command. The names were stolen from the C-shell and the
+behavior is the same.
+
+:entry "previous-error" "Command"
+This is the same as "next-error" except it goes to the previous error.
+See "next-error" for documentation.
+
+:entry "previous-line" "Command"
+This moves up to the previous line.
+
+:entry "previous-page" "Command"
+This displays the previous page of the current buffer by taking the
+top line and redrawing the window with it at the bottom. If a numeric
+argument is supplied the screen is scrolled down that many lines; if
+the argument is negative the screen is scrolled up.
+
+:entry "previous-window" "Command"
+This moves into the next window. Windows live in a circular list so
+when you're in the top window and you try to move to the previous one
+you are moved to the bottom window. It is an error to use this
+command with only one window.
+
+:entry "print" "Command"
+This prints the value of a JOVE variable.
+
+:entry "process-bind-keymap-to-key" "Command"
+This is just like "bind-to-key" except that it starts at the process-
+keymap map, instead of the default mainmap.
+
+:entry "process-bind-to-key" "Command"
+This command is identical to bind-to-key, except that it only affects
+your bindings when you are in a buffer attached to a process. When
+you enter the process buffer, any keys bound with this command will
+automatically take their new values. When you switch to a non-process
+buffer, the old bindings for those keys will be restored. For
+example, you might want to execute
+
+ process-bind-to-key stop-process ^Z
+ process-bind-to-key interrupt-process ^C
+
+Then, when you start up an interactive process and switch into that
+buffer, C-Z will execute stop-process and C-C will execute interrupt-
+process. When you switch back to a non-process buffer, C-Z will go
+back to executing scroll-up (or whatever you have it bound to).
+
+:entry "process-dbx-output" "Command"
+This command only makes sense in a buffer running a shell process. If
+you are running dbx in a window, JOVE will automatically find the file
+you are currently stepping through and display it in another window.
+The string DBX will appear in the modeline along with the other minor
+modes when this feature is enabled.
+
+:entry "process-newline" "Command"
+This only gets executed when in a buffer that is attached to an
+interactive-process. JOVE does two different things depending on
+where you are when you hit Return. When you're at the end of the I-
+Process buffer this does what Return normally does, except it also
+makes the line available to the process. When point is positioned at
+some other position that line is copied to the end of the buffer (with
+the prompt stripped) and point is moved there with it, so you can then
+edit that line before sending it to the process. This command "must"
+be bound to the key you usually use to enter shell commands (Return),
+or else you won't be able to enter any.
+
+:entry "process-prompt" "Variable"
+What a prompt looks like from the shell and i-shell-command processes.
+The default is "% ", the default C-shell prompt. This is actually a
+regular expression search string. So you can set it to be more than
+one thing at once using the \| operator. For instance, for LISP
+hackers, the prompt can be
+
+ "% \|-> \|<[0-9]>: ".
+
+
+:entry "process-send-data-no-return" "Command"
+This is like "process-newline" except it sends everything to the
+process without the newline. Normally, when you type return in a
+process buffer it sends everything you typed including the Return.
+This command just provides a way to send data to the process without
+having to send a newline as well.
+
+:entry "push-shell" "Command"
+This spawns a child shell and relinquishes control to it. This works
+on any version of UNIX, but this isn't as good as "pause-jove" because
+it takes time to start up the new shell and you get a brand new
+environment every time. To return to JOVE you type "C-D".
+
+:entry "pushd" "Command"
+This pushes a directory onto the directory stack and cd's into it. It
+asks for the directory name but if you don't specify one it switches
+the top two entries no the stack. It purposely behaves the same as
+C-shell's "pushd."
+
+:entry "pwd" "Command"
+This prints the working directory.
+
+:entry "query-replace-string" "Command"
+This replaces the occurrences of a specified string with a specified
+replacement string. When an occurrence is found point is moved to it
+and then JOVE asks what to do. The options are:
+
+ Space to replace this occurrence and go on to the next one.
+ Periodto replace this occurrence and then stop.
+ DEL to skip this occurrence and go on to the next one.
+ C-R to enter a recursive edit. This lets you temporarily
+ suspend the replace, do some editing, and then return
+ to continue where you left off. To continue with the
+ Query Replace type "C-X C-C" as if you were trying to
+ exit JOVE. Normally you would but when you are in a
+ recursive edit all it does is exit that recursive
+ editing level.
+ C-W to delete the matched string and then enter a recursive
+ edit.
+ U to undo all changes to the last modified line.
+ P or !to go ahead and replace the remaining occurrences without
+ asking.
+ Returnto stop the Query Replace.
+
+The search for occurrences starts at point and goes to the end of the
+buffer, so to replace in the entire buffer you must first go to the
+beginning.
+
+:entry "quit-process" "Command"
+This is the same as typing "C-\" (the Quit character) to a normal UNIX
+process, except it sends it to the current process in JOVE. This is
+only for versions of JOVE that have the interactive processes feature.
+This only works when you are inside a buffer that's attached to a
+process.
+
+:entry "quoted-insert" "Command"
+This lets you insert characters that normally would be executed as
+other JOVE commands. For example, to insert "C-F" you type "C-Q C-F".
+
+:entry "read-only-mode" "Command"
+Read-only-mode is a minor mode. It puts a buffer in read-only mode,
+so that any attempts to modify the buffer fail. When a file is found,
+and it's not got write permission, JOVE automatically puts the buffer
+in read-only mode. This is very helpful when you are in environments
+which use source control programs like RCS and SCCS. It prevents
+accidents like making a bunch of changes and only THEN discovering
+that you haven't checked the file out for making changes. This, like
+other minor modes, toggles.
+
+:entry "read-word-abbrev-file" "Command"
+This reads a specified file that contains a bunch of abbreviation
+definitions, and makes those abbreviations available. If the selected
+buffer is not already in Word Abbrev mode this command puts it in that
+mode.
+
+:entry "recursive-edit" "Command"
+This enters a recursive editing level. This isn't really very useful.
+I don't know why it's available for public use. I think I'll delete
+it some day.
+
+:entry "redraw-display" "Command"
+This centers the line containing point in the window. If that line is
+already in the middle the window is first cleared and then redrawn.
+If a numeric argument is supplied, the line is positioned at that
+offset from the top of the window. For example, "ESC 0 C-L" positions
+the line containing point at the top of the window.
+
+:entry "rename-buffer" "Command"
+This lets you rename the current buffer.
+
+:entry "replace-in-region" "Command"
+This is the same as "replace-string" except that it is restricted to
+occurrences between Point and Mark.
+
+:entry "replace-string" "Command"
+This replaces all occurrences of a specified string with a specified
+replacement string. This is just like "query-replace-string" except
+it replaces without asking.
+
+:entry "right-margin" "Variable"
+Where the right margin is for "Auto Fill" mode and the "justify-
+paragraph" and "justify-region" commands. The default is 78.
+
+:entry "right-margin-here" "Command"
+This sets the "right-margin" variable to the current position of
+point. This is an easy way to say, "Make the right margin begin
+here," without having to count the number of spaces over it actually
+is.
+
+:entry "save-file" "Command"
+This saves the current buffer to the associated file. This makes your
+changes permanent so you should be sure you really want to. If the
+buffer has not been modified "save-file" refuses to do the save. If
+you really do want to write the file you can use "C-X C-W" which
+executes "write-file."
+
+:entry "scroll-all-lines" "Variable"
+When this is turned on, the entire window will be scrolled left or
+right when the current line scrolls. The default value is OFF, which
+will cause JOVE to behave in the familiar way, namely to scroll only
+the current line.
+
+:entry "scroll-down" "Command"
+This scrolls the screen one line down. If the line containing point
+moves past the bottom of the window point is moved up to the center of
+the window. If a numeric argument is supplied that many lines are
+scrolled; if the argument is negative the screen is scrolled up
+instead.
+
+:entry "scroll-left" "Command"
+This scrolls the text in the current window 10 character positions to
+the left. If a numeric argument is specified then the text is
+scrolled that number of character positions. If the variable
+"scroll-all-lines" is ON then "scroll-left" may actually do nothing if
+the scrolling would cause Point not to be visible.
+
+:entry "scroll-next-page" "Command"
+This continuously scrolls up screen-full lines (PC version only).
+
+:entry "scroll-previous-page" "Command"
+This continuously scrolls down screen-full lines (PC version only).
+
+:entry "scroll-right" "Command"
+This scrolls the text in the current window 10 character positions to
+the right. If a numeric argument is specified then the text is
+scrolled that number of character positions. If the variable
+"scroll-all-lines" is ON then "scroll-right" may actually do nothing
+if the scrolling would cause Point not to be visible.
+
+:entry "scroll-step" "Variable"
+How many lines should be scrolled if the "previous-line" or "next-
+line" commands move you off the top or bottom of the screen. You may
+wish to decrease this variable if you are on a slow terminal. The
+default value is 0, which means to center the current line in the
+window. If the value is negative, the behavior is slightly different.
+If you move off the top of the window, and "scroll-step" is, say, -5
+then the new line will be displayed 5 lines from the bottom of the
+window. If you move off the bottom of the window, the new line will
+be positioned 5 lines from the top of the window.
+
+:entry "scroll-up" "Command"
+This scrolls the screen one line up. If the line containing point
+moves past the top of the window point is moved down to the center of
+the window. If a numeric argument is supplied that many lines are
+scrolled; if the argument is negative the screen is scrolled down
+instead.
+
+:entry "search-exit-char" "Variable"
+Set this to the character you want to use to exit incremental search.
+The default is Newline, which makes i-search compatible with normal
+string search.
+
+:entry "search-forward" "Command"
+This searches forward for a specified search string and positions
+point at the end of the string if it's found. If the string is not
+found point remains unchanged. This searches from point to the end of
+the buffer, so any matches before point will be missed.
+
+:entry "search-forward-nd" "Command"
+This is just like "search-forward" except that it doesn't assume a
+default search string, and it doesn't set the default search string.
+This is useful for defining macros, when you want to search for
+something, but you don't want it to affect the current default search
+string.
+
+:entry "search-reverse" "Command"
+This searches backward for a specified search string and positions
+point at the beginning if the string if it's found. If the string is
+not found point remains unchanged. This searches from point to the
+beginning of the buffer, so any matches after point will be missed.
+
+:entry "search-reverse-nd" "Command"
+This is just like "search-reverse" except that it doesn't assume a
+default search string, and it doesn't set the default search string.
+This is useful for defining macros, when you want to search for
+something, but you don't want it to affect the current default search
+string.
+
+:entry "select-buffer" "Command"
+This selects a new or already existing buffer making it the current
+one. You can type either the buffer name or number. If you type in
+the name you need only type the name until it is unambiguous, at which
+point typing Escape or Space will complete it for you. If you want to
+create a new buffer you can type Return instead of Space, and a new
+empty buffer will be created.
+
+:entry "select-buffer-1" "Command"
+This selects buffer number 0, if it exists (PC version only).
+
+:entry "select-buffer-1" "Command"
+This selects buffer number 1, if it exists (PC version only).
+
+:entry "select-buffer-2" "Command"
+This selects buffer number 2, if it exists (PC version only).
+
+:entry "select-buffer-3" "Command"
+This selects buffer number 3, if it exists (PC version only).
+
+:entry "select-buffer-4" "Command"
+This selects buffer number 4, if it exists (PC version only).
+
+:entry "select-buffer-5" "Command"
+This selects buffer number 5, if it exists (PC version only).
+
+:entry "select-buffer-6" "Command"
+This selects buffer number 6, if it exists (PC version only).
+
+:entry "select-buffer-7" "Command"
+This selects buffer number 7, if it exists (PC version only).
+
+:entry "select-buffer-8" "Command"
+This selects buffer number 8, if it exists (PC version only).
+
+:entry "select-buffer-9" "Command"
+This selects buffer number 9, if it exists (PC version only).
+
+:entry "self-insert" "Command"
+This inserts the character that invoked it into the buffer at point.
+Initially all but a few of the printing characters are bound to
+"self-insert."
+
+:entry "send-typeout-to-buffer" "Variable"
+When this is set JOVE will send output that normally overwrites the
+screen (temporarily) to a buffer instead. This affects commands like
+"list-buffers," "list-processes," and commands that use completion.
+The default value is "off".
+
+:entry "set" "Command"
+This gives a specified variable a new value. Occasionally you'll see
+lines like "set this variable to that value to do this". Well, you
+use the "set" command to do that.
+
+:entry "set-mark" "Command"
+This sets the mark at the current position in the buffer. It prints
+the message "Point pushed" on the message line. It says that instead
+of "Mark set" because when you set the mark the previous mark is still
+remembered on a ring of 16 marks. So "Point pushed" means point is
+pushed onto the ring of marks and becomes the value of "the mark". To
+go through the ring of marks you type "C-U C-@", or execute the "pop-
+mark" command. If you type this enough times you will get back to
+where you started.
+
+:entry "shell" "Variable"
+The shell to be used with all the shell commands command. If your
+SHELL environment variable is set, it is used as the value of "shell;"
+otherwise "/bin/csh" is the default.
+
+:entry "shell" "Command"
+This starts up an interactive shell in a window. JOVE uses "*shell*"
+as the name of the buffer in which the interacting takes place. See
+the manual for information on how to use interactive processes.
+
+:entry "shell-command" "Command"
+This runs a UNIX command and places the output from that command in a
+buffer. JOVE creates a buffer that matches the name of the command
+you specify and then attaches that buffer to a window. So, when you
+have only one window running this command will cause JOVE to split the
+window and attach the new buffer to that window. Otherwise, JOVE
+finds the most convenient of the available windows and uses that one
+instead. If the buffer already exists it is first emptied, except
+that if it's holding a file, not some output from a previous command,
+JOVE prints an error message and refuses to execute the command. If
+you really want to execute the command you should delete that buffer
+(saving it first, if you like) or use "shell-command-to-buffer," and
+try again.
+
+:entry "shell-command-no-buffer" "Command"
+This is just like "shell-command" except it just runs the command
+without saving the output to any buffer. It will report the success
+of the command in the usual way.
+
+:entry "shell-command-to-buffer" "Command"
+This is just like "shell-command" except it lets you specify the
+buffer to use instead of JOVE.
+
+:entry "shell-command-with-typeout" "Command"
+This is just like "shell-command" except that instead of saving the
+output to a buffer, and displaying it in a window, this just types out
+the output in the same way that "list-buffers" does. Actually, how
+this behaves depends on the value of the variable "send-typeout-to-
+buffer." If it is on then shell-command-with-typeout will behave just
+like "shell-command."
+
+:entry "shell-flags" "Variable"
+This defines the flags that are passed to shell commands. The default
+is "-c". See the "shell" variable to change the default shell.
+
+:entry "shift-region-left" "Command"
+This shifts the region left by c-indentation-increment OR by the
+numeric argument, if one is supplied. If a negative argument is
+supplied the region is shifted the other way.
+
+:entry "shift-region-right" "Command"
+This shifts the region left by c-indentation-increment OR by the
+numeric argument, if one is supplied. If a negative argument is
+supplied the region is shifted the other way.
+
+:entry "show-match-mode" "Command"
+This turns on Show Match mode (or off if it's currently on) in the
+selected buffer. This changes "}", ")" and "]" so that when they are
+typed the are inserted as usual, and then the cursor flashes back to
+the matching "{", "(" or "[" (depending on what was typed) for about
+half a second, and then goes back to just after the "}", ")" or "]"
+that invoked the command. This is useful for typing in complicated
+expressions in a program. You can change how long the cursor sits on
+the matching paren by setting the "paren-flash-delay" variable in
+tenths of a second. If the matching "{", "(" or "[" isn't visible,
+the line containing the match is displayed at the bottom of the
+screen.
+
+:entry "shrink-window" "Command"
+This makes the current window one line shorter, if possible. Windows
+must be at least 2 lines high, one for the text and the other for the
+mode line.
+
+:entry "source" "Command"
+This reads a bunch of JOVE commands from a file. The format of the
+file is the same as that in your initialization file (your ".joverc")
+in your main directory. There should be one command per line and it
+should be as though you typed "ESC X" while in JOVE. For example,
+here's part of my initialization file:
+
+ bind-to-key i-search-reverse ^R
+ bind-to-key i-search-forward ^S
+ bind-to-key pause-jove ^[S
+
+What they do is make "C-R" call the "i-search-reverse" command and
+"C-S" call "i-search-forward" and "ESC S" call "pause-jove."
+
+:entry "spell-buffer" "Command"
+This runs the current buffer through the UNIX "spell" program and
+places the output in buffer "Spell". Then JOVE lets you edit the list
+of words, expecting you to delete the ones that you don't care about,
+i.e., the ones you know are spelled correctly. Then the "parse-
+spelling-errors-in-buffer" command comes along and finds all the
+misspelled words and sets things up so the error commands work.
+
+:entry "split-current-window" "Command"
+This splits the current window into two equal parts (providing the
+resulting windows would be big enough) and displays the selected
+buffer in both windows. Use "C-X 1" to go back to 1 window mode. If
+a numeric argument is supplied, the window is split "evenly" that many
+times (when possible).
+
+:entry "start-remembering" "Command"
+This is just another name for the "begin-kbd-macro" name. It is
+included for backward compatibility.
+
+:entry "stop-process" "Command"
+This sends a stop signal (C-Z, for most people) to the current
+process. It only works if you have the interactive process feature,
+and you are in a buffer attached to a process.
+
+:entry "stop-remembering" "Command"
+This is just another name for the "end-kbd-macro" command. It is
+included for backward compatibility.
+
+:entry "string-length" "Command"
+This prints the number of characters in the string that point sits in.
+Strings are surrounded by double quotes. JOVE knows that "\007" is
+considered a single character, namely "C-G", and also knows about
+other common ones, like "\r" (Return) and "\n" (LineFeed). This is
+mostly useful only for C programmers.
+
+:entry "suspend-jove" "Command"
+This is a synonym for "pause-jove."
+
+:entry "sync-frequency" "Variable"
+The temporary files used by JOVE are forced out to disk every "sync-
+frequency" modifications. The default is 50, which really makes good
+sense. Unless your system is very unstable, you probably shouldn't
+fool with this.
+
+:entry "tag-file" "Variable"
+This the name of the file in which JOVE should look up tag
+definitions. The default value is "./tags".
+
+:entry "text-mode" "Command"
+This sets the major mode to Text. Currently the other modes are
+Fundamental, C and Lisp mode.
+
+:entry "tmp-file-pathname" "Variable"
+This tells JOVE where to put the tmp files, which is where JOVE stores
+buffers internally. The default is usually in /tmp, but if you want
+to store them somewhere else, you can set this variable. If your
+system crashes a lot it might be a good idea to set this variable to
+somewhere other than /tmp because the system removes all the files in
+/tmp upon reboot, and so you would not be able to recover editor
+buffers using the "jove -r" command.
+
+NOTE: In order for this to work correctly you must set this variable
+BEFORE JOVE creates the tmp file. You can set this in your .joverc
+(the closer to tbe beginning the better), or as soon as you start up
+JOVE before you visit any files.
+
+:entry "transpose-characters" "Command"
+This switches the character before point with the one after point, and
+then moves forward one. This doesn't work at the beginning of the
+line, and at the end of the line it switches the two characters before
+point. Since point is moved forward, so that the character that was
+before point is still before point, you can use "C-T" to drag a
+character down the length of a line. This command pretty quickly
+becomes very useful.
+
+:entry "transpose-lines" "Command"
+This switches the current line with the one above it, and then moves
+down one so that the line that was above point is still above point.
+This, like "transpose-characters," can be used to drag a line down a
+page.
+
+:entry "unbind-key" "Command"
+Use this to unbind "any" key sequence. You can use this to unbind
+even a prefix command, since this command does not use "key-map
+completion". For example, "ESC X unbind-key ESC [" unbinds the
+sequence "ESC [". This is useful for "turning off" something set in
+the system-wide ".joverc" file.
+
+:entry "update-time-frequency" "Variable"
+How often the mode line is updated (and thus the time and load
+average, if you display them). The default is 30 seconds.
+
+:entry "use-i/d-char" "Variable"
+If your terminal has insert/delete character capability you can tell
+JOVE not to use it by setting this to "off". In my opinion it is only
+worth using insert/delete character at low baud rates. WARNING: if
+you set this to "on" when your terminal doesn't have insert/delete
+character capability, you will get weird (perhaps fatal) results.
+
+:entry "version" "Command"
+Displays the version number of this JOVE.
+
+:entry "visible-bell" "Variable"
+Use the terminal's visible bell instead of beeping. This is set
+automatically if your terminal has the capability.
+
+:entry "visible-spaces-in-window" "Command"
+This displays an underscore character instead of each space in the
+window and displays a greater-than followed by spaces for each tab in
+the window. The actual text in the buffer is not changed; only the
+screen display is affected. To turn this off you run the command
+again; it toggles.
+
+:entry "visit-file" "Command"
+This reads a specified file into the current buffer replacing the old
+text. If the buffer needs saving JOVE will offer to save it for you.
+Sometimes you use this to start over, say if you make lots of changes
+and then change your mind. If that's the case you don't want JOVE to
+save your buffer and you answer "NO" to the question.
+
+:entry "window-find" "Command"
+This lets you select another buffer in another window three different
+ways. This waits for another character which can be one of the
+following:
+
+ T Finds a tag in the other window.
+ ^T Finds the tag at point in the other window
+ F Finds a file in the other window.
+ B Selects a buffer in the other window.
+
+This is just a convenient short hand for "C-X 2" (or "C-X O" if there
+are already two windows) followed by the appropriate sequence for
+invoking each command. With this, though, there isn't the extra
+overhead of having to redisplay. In addition, you don't have to
+decide whether to type "C-X 2" or "C-X O" since "C-X 4" does the right
+thing.
+
+:entry "word-abbrev-mode" "Command"
+This turns on Word Abbrev mode (or off if it's currently on) in the
+selected buffer. Word Abbrev mode lets you specify a word (an
+abbreviation) and a phrase with which JOVE should substitute the
+abbreviation. You can use this to define words to expand into long
+phrases, e.g., "jove" can expand into "Jonathan's Own Version of
+Emacs"; another common use is defining words that you often misspell
+in the same way, e.g., "thier" => "their" or "teh" => "the". See the
+information on the "auto-case-abbrev" variable.
+
+There are two kinds of abbreviations: mode specific and global. If
+you define a Mode specific abbreviation in C mode, it will expand only
+in buffers that are in C mode. This is so you can have the same
+abbreviation expand to different things depending on your context.
+Global abbreviations expand regardless of the major mode of the
+buffer. The way it works is this: JOVE looks first in the mode
+specific table, and then in the global table. Whichever it finds it
+in first is the one that's used in the expansion. If it doesn't find
+the word it is left untouched. JOVE tries to expand words as they are
+typed, when you type a punctuation character or Space or Return. If
+you are in Auto Fill mode the expansion will be filled as if you typed
+it yourself.
+
+:entry "wrap-search" "Variable"
+If set, searches will "wrap around" the ends of the buffer instead of
+stopping at the bottom or top. The default is "off".
+
+:entry "write-file" "Command"
+This saves the current buffer to a specified file, and then makes that
+file the default file name for this buffer. If you specify a file
+that already exists you are asked to confirm over-writing it.
+
+:entry "write-files-on-make" "Variable"
+When set, all modified files will be written out before calling make
+when the "compile-it" command is executed. The default is "on".
+
+:entry "write-macros-to-file" "Command"
+This writes the currently defined macros to a specified file in a
+format appropriate for reading them back in with the "source" command.
+The purpose of this command is to allow you to define macros once and
+use them in other instances of JOVE.
+
+:entry "write-modified-files" "Command"
+This saves all the buffers that need saving. If you supply a numeric
+argument it asks for each buffer whether you really want to save it.
+
+:entry "write-region" "Command"
+This writes the text in the region to a specified file. If the file
+already exists you are asked to confirm over-writing it.
+
+:entry "write-word-abbrev-file" "Command"
+This writes the currently defined abbreviations to a specified file.
+They can be read back in and automatically defined with "read-word-
+abbrev-file."
+
+:entry "xterm-mouse" "Command"
+This function enables the use of the mouse with \S-2JOVE\fP in an
+xterm window. The function is enabled when 'ansi-codes' is defined and
+the function is bound to <escape><open-square-bracket>M. Moving the
+mouse and pressing the left button will set the point to the mouse
+position and push it. Moving the mouse and pressing the right button
+will set the point to the mouse position and yank the region from the
+last mark and the current point. Moving the mouse and pressing the
+middle button will set the point to the mouse position and paste the
+contents of the mouse button in place. Note that this in a
+\s-2JOVE\fP function and is independent of the normal cut and paste
+operations available under xterm. It is possible to bind these
+operations to SHIFT+the mouse button, so that they will work in
+addition to \s-2JOVE\fP cut and paste.
+
+:entry "yank" "Command"
+This undoes the last kill command. That is, it inserts the killed
+text at point. When you do multiple kill commands in a row, they are
+merged so that yanking them back with "C-Y" yanks back all of them.
+
+:entry "yank-pop" "Command"
+This yanks back previous killed text. JOVE has a kill ring on which
+the last 10 kills are stored. "yank" yanks a copy of the text at the
+front of the ring. If you want one of the last ten kills you use "ESC
+Y" which rotates the ring so another different entry is now at the
+front. You can use "ESC Y" only immediately following a "C-Y" or
+another "ESC Y". If you supply a negative numeric argument the ring
+is rotated the other way. If you use this command enough times in a
+row you will eventually get back to where you started. Experiment
+with this. It's extremely useful.