NAME
     jove - an interactive display-oriented text editor

SYNOPSIS
     jove [-d directory] [-w] [-t tag] [+[n] file] [-p file] [files]
     jove -r

DESCRIPTION
     JOVE is Jonathan's Own Version of Emacs.  It is based on the
     original  EMACS  editor  written at MIT by Richard Stallman.
     Although JOVE is meant to be compatible  with  EMACS,  there
     are  some  major differences between the two editors and you
     shouldn't rely on their behaving identically.

     JOVE works  on  any  reasonable  display  terminal  that  is
     described  in  the  termcap  file  (see  TERMCAP(5) for more
     details).  When you start up JOVE, it checks to see  whether
     you  have  your  TERM  environment  variable  set.   On most
     systems that will automatically be set up for  you,  but  if
     it's  not  JOVE  will  ask you what kind of terminal you are
     using.  To avoid having to type this every time you run JOVE
     you  can  set  your TERM environment variable yourself.  How
     you do this depends on which shell you are running.  If  you
     are running the C Shell, as most of you are, you type

          % setenv TERM type

     and with the Bourne Shell, you type

          $ TERM= type ; export TERM

     where type is the name of the kind of terminal you are using
     (e.g.,  vt100).   If  neither of these works get somebody to
     help you.

INVOKING JOVE
     If you run JOVE with no arguments you will be placed  in  an
     empty  buffer,  called  Main.  Otherwise,  any arguments you
     supply are considered file names and each is "given" its own
     buffer.   Only  the first file is actually read in - reading
     other files is deferred until you actually try  to  use  the
     buffers  they  are  attached  to.   This is for efficiency's
     sake: most of the time, when you run JOVE on a big  list  of
     files, you end up editing only a few of them.

     The names of all of the files specified on the command  line
     are  saved in a buffer, called *minibuf*. The mini-buffer is
     a special JOVE buffer that is used when  JOVE  is  prompting
     for  some  input to many commands (for example, when JOVE is
     prompting for a file name).  When you are being prompted for
     a  file name, you can type C-N (that's Control-N) and C-P to
     cycle through the list of files that were specified  on  the
     command  line.  The file name will be inserted where you are
     typing and then you can edit  it  as  if  you  typed  it  in
     yourself.

     JOVE recognizes the following switches:

     -d   The following argument is taken to be the name  of  the
          current  directory.   This can speed startup if you are
          using a shell which does not automatically maintain the
          PWD environment variable.

     Recover looks for JOVE buffers that are left around and  are
     owned  by  you.  (You cannot recover other peoples' buffers,
     obviously.) If there were no buffers that were  modified  at
     the  time  of  the crash or there were but recover can't get
     its hands on them, you will be informed  with  the  message,
     "There  is  nothing  to recover."  Otherwise, recover prints
     the date and time of the version of the buffers it has,  and
     then waits for you type a command.

     To get a list of the buffers recover knows  about,  use  the
     list  command.  This will list all the buffers and the files
     and the number of lines associated with them.  Next to  each
     buffer  is a number.  When you want to recover a buffer, use
     the get command.  The syntax is get  buffer  filename  where
     buffer  is  either  the  buffer's  name or the number at the
     beginning of the line.  If you don't type the buffer name or
     the filename, recover will prompt you for them.

     If there are a lot of buffers and you want to recover all of
     them,  use  the  recover  command.   This  will recover each
     buffer to the name of the buffer with ".#" prepended to  the
     name (so that the original isn't over-written).  It asks for
     each file and if you want to restore  that  buffer  to  that
     name you type "yes".  If you want to recover the file but to
     a different name, just type the new name in.   If  you  type
     "no" recover will skip that file and go on to the next one.

     If you want to look at a buffer before deciding  to  recover
     it,  use  the  print  command.  The syntax for this is print
     buffer where buffer again is either its name or the  number.
     You  can  type  ^C if you want to abort printing the file to
     the terminal, and recover will respond with  an  appropriate
     message.

     When you're done and have all the buffers you want, type the
     quit  command to leave.  You will then be asked whether it's
     okay to delete the tmp files.  Most of the time that's  okay
     and  you should type "yes".  When you say that, JOVE removes
     all traces of those buffers and you won't be able to look at
     them  again.  (If you recovered some buffers they will still
     be around, so don't worry.)  So, if you're not sure  whether
     you've  gotten  all  the  buffers, you should answer "no" so
     that you'll be able to run recover again  at  a  later  time
     (presumably  after you've figured out which ones you want to
     save).

     If you type ^C at any time other than when you're printing a
     file  to the terminal, recover will exit without a word.  If
     you do this but wish you hadn't, just type "jove -r" to  the
     shell again, and you will be put back with no loss.

GETTING HELP
     Once in JOVE, there are several commands  available  to  get
     help.   To  execute  any  JOVE  command,  you  type "<ESC> X
     command-name" followed by <Return>.  To get a  list  of  all
     the  JOVE  commands you type "<ESC> X" followed by "?".  The
     describe-bindings  command  can  be  used  to  get  a   list
     containing  each  key,  and its associated command (that is,
     the command that gets executed when you type that key).   If
     you  want to save the list of bindings, you can set the jove
     variable  send-typeout-to-buffer  to  ON  (using   the   set
     command),  and  then  execute the describe-bindings command.
     This will create a buffer and put in it the bindings list it
     normally  would  have  printed  on the screen.  Then you can
     save that buffer to a file and print it to use  as  a  quick
     reference card.  (See VARIABLES below.)

     Once you know the name of a command, you can find  out  what
     it  does  with  the  describe-command command, which you can
     invoke quickly by typing "ESC ?".  The apropos command  will
     give you a list of all the command with a specific string in
     their names.  For example, if you want to know the names  of
     all  the  commands  that are concerned with windows, you can
     run "apropos" with the keyword window.

     If you're not familar with the EMACS command set,  it  would
     be  worth your while to use run TEACHJOVE.  Do do that, just
     type "teachjove" to your shell and you  will  be  placed  in
     JOVE   in  a  file  which  contains  directions.   I  highly
     recommend this for beginners; you may save yourself a lot of
     time and headaches.

KEY BINDINGS and VARIABLES
     You can alter the key bindings in JOVE to fit your  personal
     tastes.   That is, you can change what a key does every time
     you strike it.  For example, by default the C-N key is bound
     to  the  command  next-line and so when you type it you move
     down a line.  If you want to change a binding or add  a  new
     one,  you use the bind-to-key command.  The syntax is "bind-
     to-key <command> key".

     You can also change the way JOVE behaves in little  ways  by
     changing  the  value of some variables with the set command.
     The syntax is "set  <variable>  value",  where  value  is  a
     number  or  a  string,  or  "on"  or "off", depending on the
     context.  For example, if  you  want  JOVE  to  make  backup
     files, you set the "make-backup-files" variable to "on".  To
     see the value of a  variable,  use  the  "print  <variable>"
     command.

INITIALIZATION
     JOVE automatically reads  commands  from  an  initialization
     file in your HOME directory, called ".joverc".  In this file
     you can place commands that you would normally type in JOVE.
     If  you  like  to  rearrange  the  key bindings and set some
     variables every time you get into JOVE, you should put  them
     in  your  initialization  file.   Here  are a few lines from
     mine:
          set match-regular-expressions on
          auto-execute-command auto-fill /tmp/Re\|.*drft
          bind-to-key i-search-forward ^\
          bind-to-key i-search-reverse ^R
          bind-to-key find-tag-at-point ^[^T
          bind-to-key scroll-down ^C
          bind-to-key grow-window ^Xg
          bind-to-key shrink-window ^Xs
     (Note  that  the  Control  Characters  can  be  either   two
     character  sequences  (e.g.  ^  and C together as ^C) or the
     actual control character.  If you want to use an ^ by itself
     you  must  BackSlash  it (e.g., bind-to-key grow-window ^X\^
     binds grow-window to "^X^").

SOME MINOR DETAILS
     You should type C-\ instead of C-S in many  instances.   For
     example,  the  way  to  search for a string is documented as
     being "C-S" but in reality you should type "C-\".   This  is
     because  C-S  is the XOFF character (what gets sent when you
     type the NO SCROLL key), and clearly that won't  work.   The
     XON  character  is  "C-Q"  (what  gets sent when you type NO
     SCROLL again) which  is  documented  as  the  way  to  do  a
     quoted-insert.   The  alternate key for this is "C-^" (typed
     as "C-`" on vt100's and its look-alikes).  If  you  want  to
     enable  C-S and C-Q and you know what you are doing, you can
     put the line:
          set allow-^S-and-^Q on
     in your initialization file.   If  your  communication  link
     doesn't  pass  C-S  and  C-Q,  you  can  use  C-\ and C-^ as
     synonyms in most situations.

     If your terminal has a metakey, JOVE will use it unless  you
     turn off the "meta-key" variable.

FILES
     /usr/ceas/lib/jove/jove.rc - system wide initialization file
     ~/.joverc - personal initialization file
     /tmp - where temporary files are stored
     /usr/ceas/lib/jove/teach-jove - the interactive tutorial

SEE ALSO
     ed(1) - for a description of regular expressions
     teachjove(1) - for an interactive JOVE tutorial.

DIAGNOSTICS
     JOVE diagnostics are meant to be self-explanatory,  but  you
     are advised to seek help whenever you are confused.  You can
     easily lose a lot of work if you don't know EXACTLY what you
     are doing.

BUGS
     Lines can't be more than 1024 characters long.

     Searches can't cross line boundaries.

AUTHOR
     Jonathan Payne