Annotation of 43BSDTahoe/new/jove/doc/teach-jove, revision 1.1

1.1     ! root        1:                      J O V E   T U T O R I A L 
        !             2: 
        !             3: Welcome to JOVE - an advanced, easy-to-use, user-friendly environment 
        !             4: for editing text, programs or anything else you may like to type.
        !             5: 
        !             6: JOVE commands generally involve the CONTROL key (sometimes labelled
        !             7: CTRL or CTL) or the META key (generally labelled ESCAPE).  Rather than
        !             8: write out META or CONTROL each time we want you to prefix a character,
        !             9: we'll use the following abbreviations:
        !            10: 
        !            11:  C-<chr>  means hold the CONTROL key while typing the character <chr>
        !            12:          Thus, C-F would be: hold the CONTROL key and type F.
        !            13:  M-<chr>  means type the META (ESCAPE) key and release it, then type
        !            14:          the character <chr>.  The <chr> can be upper or lower case
        !            15:          and it will have the same meaning.
        !            16: 
        !            17: Important note: if you must exit at some point, type C-X C-C.
        !            18: The characters ">>" at the left margin indicate directions for you to
        !            19: try using a command.  For instance:
        !            20: 
        !            21: >>  Now type C-V (View next screen) to move to the next screen.
        !            22:        (go ahead, do it by depressing the control key and V together).
        !            23:        From now on, you'll be expected to do this whenever you finish
        !            24:        reading the screen.
        !            25: 
        !            26: Note that there is an overlap when going from screen to screen; this
        !            27: provides some continuity when moving through the file.
        !            28: 
        !            29: The first thing that you need to know is how to move around from
        !            30: place to place in the file.  You already know how to move forward a
        !            31: screen, with C-V.  To move backwards a screen, type M-V (depress the
        !            32: META key and type V, or type <ESC>V if you don't have a META or EDIT
        !            33: key).
        !            34: 
        !            35: >>  Try typing M-V and then C-V to move back and forth a few times.
        !            36: 
        !            37: 
        !            38: SUMMARY
        !            39: -------
        !            40: 
        !            41: The following commands are useful for viewing screenfuls:
        !            42: 
        !            43:        C-V     Move forward one screenful
        !            44:        M-V     Move backward one screenful
        !            45:        C-L     Center the current line--clear screen and redisplay
        !            46:                everything if current line is already at center.
        !            47:        
        !            48: >> find the cursor and remember what text is near it.
        !            49:    Then type a C-L.
        !            50:    Find the cursor again and see what text is near it now.
        !            51: 
        !            52: 
        !            53: BASIC CURSOR CONTROL
        !            54: --------------------
        !            55: 
        !            56: Getting from screenful to screenful is useful, but how do you
        !            57: reposition yourself within a given screen to a specific place?  There
        !            58: are several ways you can do this.  One way (not the best, but the most
        !            59: basic) is to use the commands previous, backward, forward and next.
        !            60: As you can imagine these commands (which are given to JOVE as C-P,
        !            61: C-B, C-F, and C-N respectively) move the cursor from where it
        !            62: currently is to a new place in the given direction.  Here, in a more
        !            63: graphical form are the commands:
        !            64:  
        !            65:                          Previous line, C-P
        !            66:                                  :
        !            67:                                  :
        !            68:    Backward, C-B .... Current cursor position .... Forward, C-F
        !            69:                                  :
        !            70:                                  :
        !            71:                          Next line, C-N
        !            72: 
        !            73: You'll probably find it easy to think of these by letter.  P for
        !            74: previous, N for next, B for backward and F for forward.  These are the
        !            75: basic cursor positioning commands and you'll be using them ALL the
        !            76: time so it would be of great benefit if you learn them now.
        !            77: 
        !            78: >> Do a few C-N's to bring the cursor down to this line.
        !            79: 
        !            80: >> Move into the line with C-F's and then up with several C-P's.  See
        !            81:    what C-P does when the cursor is in the middle of the line.
        !            82: 
        !            83: Lines are separated by a single Linefeed character, which is what Unix
        !            84: calls a Newline.
        !            85: 
        !            86: >> Try to C-B at the beginning of a line.  Do a few more C-B's.
        !            87:    Then do C-F's back to the end of the line and beyond.
        !            88: 
        !            89: When you go off the top or bottom of the screen, the text beyond the
        !            90: edge is shifted onto the screen so that your instructions can be
        !            91: carried out while keeping the cursor on the screen.
        !            92: 
        !            93: >> Try to move the cursor off the bottom of the screen with C-N and
        !            94:    see what happens.
        !            95: 
        !            96: If moving by characters is too slow, you can move by words.  M-F
        !            97: (Meta-F) moves forward a word and M-B moves back a word.
        !            98: 
        !            99: >> Type a few M-F's and M-B's.  Intersperse them with C-F's and C-B's.
        !           100: 
        !           101: Notice the parallel between C-F and C-B on the one hand, and M-F and
        !           102: M-B on the other hand.  Very often Meta characters are used for
        !           103: operations related to English text whereas Control characters operate
        !           104: on the basic textual units that are independent of what you are
        !           105: editing (characters, lines, etc).  There is a similar parallel between
        !           106: lines and sentences: C-A and C-E move to the beginning or end of a
        !           107: line, and M-A and M-E move to the beginning or end of a sentence.
        !           108: 
        !           109: >> Try a couple of C-A's, and then a couple of C-E's.
        !           110:    Try a couple of M-A's, and then a couple of M-E's.
        !           111: 
        !           112: See how repeated C-A's do nothing, but repeated M-A's keep moving
        !           113: farther.  Do you think that this is right?
        !           114: 
        !           115: Two other simple cursor motion commands are M-< (Meta Less-than),
        !           116: which moves to the beginning of the file, and M-> (Meta Greater-than),
        !           117: which moves to the end of the file.  You probably don't need to try
        !           118: them, since finding this spot again will be boring.  If you need the
        !           119: shift key to type a "<", then you must also use the shift key to type
        !           120: M-<.  Otherwise, you would be typing M-, .
        !           121: 
        !           122: The location of the cursor in the text is also called "point".  To
        !           123: paraphrase, the cursor shows on the screen where point is located in
        !           124: the text.
        !           125: 
        !           126: Here is a summary of simple moving operations including the word and
        !           127: sentence moving commands:
        !           128: 
        !           129:        C-F     Move forward a character
        !           130:        C-B     Move backward a character
        !           131: 
        !           132:        M-F     Move forward a word
        !           133:        M-B     Move backward a word
        !           134: 
        !           135:        C-N     Move to next line
        !           136:        C-P     Move to previous line
        !           137: 
        !           138:        C-A     Move to beginning of line
        !           139:        C-E     Move to end of line
        !           140: 
        !           141:        M-A     Move back to beginning of sentence
        !           142:        M-E     Move forward to end of sentence
        !           143: 
        !           144:        M-<     Go to beginning of file
        !           145:        M->     Go to end of file
        !           146: 
        !           147: >> Try all of these commands now a few times for practice.  Since the
        !           148:    last two will take you away from this screen, you can come back
        !           149:    here with the command C-X C-X (which will be explained later).
        !           150:    These are the most often used commands.
        !           151: 
        !           152: Like all other commands in JOVE, these commands can be given arguments
        !           153: which cause them to be executed repeatedly.  The way you give a
        !           154: command a repeat count is by typing META and then the digits before
        !           155: you type the command.  (Remember META is ususally called ESCAPE)
        !           156: 
        !           157: For instance, META 8 C-F moves forward eight characters.
        !           158:        
        !           159: >> Try giving a suitable argument to C-N or C-P to come as close
        !           160:    as you can to this line in one jump.
        !           161: 
        !           162: The only apparent exception to this is the screen moving commands, C-V
        !           163: and M-V.  When given an argument, they scroll the screen up or down by
        !           164: that many lines, rather than screenfuls.  This proves to be much more
        !           165: useful.
        !           166: 
        !           167: >> Try typing M-8 C-V now.
        !           168: 
        !           169: Did it scroll the screen up by 8 lines?  If you would like to scroll
        !           170: it down you can give an argument to M-V.
        !           171: 
        !           172: 
        !           173: 
        !           174: THE UNIVERSAL ARGUMENT
        !           175: ----------------------
        !           176:    Almost every command in JOVE takes a so-called Universal Argument.
        !           177: This argument, although it is interpreted differently in some cases,
        !           178: usually means REPEAT.  One important exception to this is with the screen
        !           179: moving commands.  In this case, the number refers to the number of LINES
        !           180: to scroll, not the number of screens.
        !           181: 
        !           182:    The way you give a command a universal argument is by typing ESC and
        !           183: then the number. For example, ESC 10 C-F would move you forward ten
        !           184: characters.
        !           185: 
        !           186: >>> Try  giving a suitable argument to C-N or C-P to come as close as you
        !           187:     can to this  line  in  one  jump.  Then  try giving the same command, 
        !           188:     except make the number negative.
        !           189: 
        !           190:   Another count-giving command is C-U.  This command, when you first type
        !           191: it, gives you an argument of 4 (four).  If you type C-U C-U, you will get
        !           192: an argument of 16.  Each time C-U is typed, the argument is multiplied by
        !           193: four.
        !           194: 
        !           195: >>> Try typing ESC 8 C-V now.
        !           196: 
        !           197: THE GOTO COMMAND
        !           198: ----------------
        !           199:    Now that we've learned about the universal argument, we can  introduce
        !           200: another  cursor  positioning  command,  the command to move to a specific
        !           201: line.  This command is given by giving a line number via  ESC,  and  then
        !           202: typing M-G.
        !           203: 
        !           204: >>> Try  using  the M-< and M-> commands to move to the beginning and the
        !           205:     end of the file. Then come back here  using the M-G  command (this is 
        !           206:     line 206, so you'd type ESC 206 M-G.)
        !           207: 
        !           208: QUITTING FROM COMMANDS
        !           209: ----------------------
        !           210: 
        !           211: The character in JOVE used to quit out of all commands which request
        !           212: input is C-G.  For example, you can use C-G to discard a numeric
        !           213: argument or the beginning of a command that you don't want to finish.
        !           214: 
        !           215: >> Type M-100 to make a numeric arg of 100, then type C-G.  Now type
        !           216:    C-F.  How many characters does it move?  If you have typed an <ESC>
        !           217:    by mistake, you can get rid of it with a C-G.
        !           218: 
        !           219: 
        !           220: ERRORS
        !           221: ------
        !           222: 
        !           223: Sometimes you may do something which JOVE doesn't allow.  If it is
        !           224: something simple, such as typing a control key sequence which is not
        !           225: associated with any command, JOVE will just beep at you.  Otherwise,
        !           226: JOVE will also display an informative error message at the bottom of
        !           227: the screen.
        !           228: 
        !           229: Some versions of JOVE do not have all the features described in this
        !           230: tutorial implemented yet.  If you come across such an unimplemented
        !           231: feature, you may get an error message when you try to use it.  Just
        !           232: proceed on to the next section of the tutorial.
        !           233: 
        !           234: 
        !           235: INSERTING AND DELETING
        !           236: ----------------------
        !           237: 
        !           238: If you want to type text, just do it.  Characters which you can see,
        !           239: such as A, 7, *, etc. are taken by JOVE as text and inserted
        !           240: immediately.  Type <Return> (the carriage-return key) to insert a line
        !           241: separator.
        !           242: 
        !           243: You can delete the last character you typed by typing <Delete>.
        !           244: <Delete> is a key on the keyboard, which may be labeled "Rubout"
        !           245: instead of "Delete" on some terminals.  More generally, <Delete>
        !           246: deletes the character immediately before the current cursor position.
        !           247: 
        !           248: >> Do this now, type a few characters and then delete them by typing
        !           249:    <Delete> a few times.  Don't worry about this file being changed;
        !           250:    you won't affect the master tutorial.  This is just a copy of it.
        !           251: 
        !           252: >> Now start typing text until you reach the right margin, and keep
        !           253:    typing.  When a line of text gets too big for one line on the
        !           254:    screen, the line of text is "continued" off the edge of the screen
        !           255:    The exclamation mark at the right margin indicates a line which has
        !           256:    been continued.  The line will slide over if you move off the edge
        !           257:    on either side.
        !           258: 
        !           259: >> The following line actually goes off the edge.  Trying typing enough
        !           260:    C-F's that you move off the right hand end of this line.... This is a long line of text that the JOVE editor extends to the right.
        !           261: 
        !           262: >> Use <Delete>s to delete the text until the line fits on one screen
        !           263:    line again.  The continuation "!" will go away.
        !           264: 
        !           265: >> Move the cursor to the beginning of a line and type <Delete>.  This
        !           266:    deletes the line separator before the line and merges the line onto
        !           267:    the previous line.  The resulting line may be too long to fit, in
        !           268:    which case it has a continuation indication.
        !           269: 
        !           270: >> Type <Return> to insert the separator again.
        !           271: 
        !           272: Remember that most JOVE commands can be given a repeat count;  Note
        !           273: that this includes characters which insert themselves.
        !           274: 
        !           275: >>  Try that now -- type META 8 * and see what happens.
        !           276: 
        !           277: If you want to create a blank line in between two lines, move to the
        !           278: second of the two lines and type C-O.
        !           279: 
        !           280: >>  Try moving to a line and typing C-O now.
        !           281: 
        !           282: You've now learned the most basic way of typing something in JOVE and
        !           283: correcting errors.  You can delete by words or lines as well.  Here is
        !           284: a summary of the delete operations:
        !           285: 
        !           286:        <Delete>     delete the character just before the cursor
        !           287:        C-D          delete the next character after the cursor
        !           288: 
        !           289:        M-<Delete>   kill the word immediately before the cursor
        !           290:        M-D          kill the next word after the cursor
        !           291: 
        !           292:        C-K          kill from the cursor position to end of line
        !           293:        M-K          kill to the end of the current sentence
        !           294: 
        !           295: Notice that <Delete> and C-D vs M-<Delete> and M-D extend the parallel
        !           296: started by C-F and M-F (well, <Delete> isn't really a control
        !           297: character, but let's not worry about that).  C-K and M-K are like C-E
        !           298: and M-E, sort of, in that lines are opposite sentences.
        !           299: 
        !           300: Now suppose you kill something, and then you decide that you want to
        !           301: get it back?  Well, whenever you kill something bigger than a
        !           302: character, JOVE saves it for you.  To yank it back, use C-Y.  Note
        !           303: that you don't have to be in the same place to do C-Y; This is a good
        !           304: way to move text around.  Also note that the difference between
        !           305: "Killing" and "Deleting" something is that "Killed" things can be
        !           306: yanked back, and "Deleted" things cannot.  Generally, the commands
        !           307: that can destroy a lot of text save it, while the ones that attack
        !           308: only one character, or nothing but blank lines and spaces, do not save.
        !           309: 
        !           310: For instance, type C-N a couple times to postion the cursor at some
        !           311: line on this screen.
        !           312: 
        !           313: >> Do this now, move the cursor and kill that line with C-K.
        !           314: 
        !           315: Note that a single C-K kills the contents of the line, and a second
        !           316: C-K kills the line itself, and make all the other lines move up.  If
        !           317: you give C-K a repeat count, it kills that many lines AND their
        !           318: contents.
        !           319: 
        !           320: The text that has just disappeared is saved so that you can retrieve
        !           321: it.  To retrieve the last killed text and put it where the cursor
        !           322: currently is, type C-Y.
        !           323: 
        !           324: >> Try it; type C-Y to yank the text back.
        !           325: 
        !           326: Think of C-Y as if you were yanking something back that someone took
        !           327: away from you.  Notice that if you do several C-K's in a row the text
        !           328: that is killed is all saved together so that one C-Y will yank all of
        !           329: the lines.
        !           330: 
        !           331: >> Do this now, type C-K several times.
        !           332: 
        !           333: Now to retrieve that killed text:
        !           334: 
        !           335: >> Type C-Y.  Then move the cursor down a few lines and type C-Y
        !           336:    again.  You now see how to copy some text.
        !           337: 
        !           338: What do you do if you have some text you want to yank back, and then
        !           339: you kill something else?  C-Y would yank the more recent kill.  But
        !           340: the previous text is not lost.  You can get back to it using the M-Y
        !           341: command.  After you have done C-Y to get the most recent kill, typing
        !           342: M-Y replaces that yanked text with the previous kill.  Typing M-Y
        !           343: again and again brings in earlier and earlier kills.  When you have
        !           344: reached the text you are looking for, you can just go away and leave
        !           345: it there.  If you M-Y enough times, you come back to the starting
        !           346: point (the most recent kill).
        !           347: 
        !           348: >> Kill a line, move around, kill another line.  Then do C-Y to get
        !           349:    back the second killed line.  Then do M-Y and it will be replaced
        !           350:    by the first killed line.  Do more M-Y's and see what you get.
        !           351:    Keep doing them until the second kill line comes back, and then a
        !           352:    few more.  If you like, you can try giving M-Y positive and negative
        !           353:    arguments.
        !           354: 
        !           355: 
        !           356: FILES
        !           357: -----
        !           358: 
        !           359: In order to make the text you edit permanent, you must put it in a
        !           360: file.  Otherwise, it will go away when your invocation of JOVE goes
        !           361: away.  While you are editing a file in JOVE, your changes are actually
        !           362: being made to a private "scratch" copy of the file.  However, the
        !           363: changes still don't become permanent until you "save" the file.  This
        !           364: is so you can have control to avoid leaving a half-changed file around
        !           365: when you don't want to.
        !           366: 
        !           367: If you look near the botton of the screen you will see a line that
        !           368: looks like this:
        !           369:     JOVE (Text) Buffer: teach-jove "teach-jove" *
        !           370: "teach-jove" is the name of the file you are editing.  This is the name
        !           371: of your own temporary copy of the text of the JOVE tutorial; the file
        !           372: you are now editing.  Whatever file you edit, that file's name will
        !           373: appear in that precise spot.
        !           374: 
        !           375: The commands for finding and saving files are unlike the other
        !           376: commands you have learned in that they consist of two characters.
        !           377: They both start with the character Control-X.  There is a whole series
        !           378: of commands that start with Control-X; many of them have to do with
        !           379: files, buffers, and related things, and all of them consist of
        !           380: Control-X followed by some other character.  As with M- the character
        !           381: interpreted the same regardless of case.
        !           382: 
        !           383: Another thing about the command for finding a file is that you have to
        !           384: say what file name you want.  We say the command "reads an argument
        !           385: from the terminal" (in this case, the argument is the name of the
        !           386: file).  After you type the command
        !           387: 
        !           388:        C-X C-F   Find a file
        !           389: 
        !           390: JOVE will ask you for the file name.  You should end the name with
        !           391: the Return key.  After this command, you will see the contents of the
        !           392: file in your JOVE.  You can edit the contents.  When you wish to make
        !           393: the changes permanent, issue the command
        !           394: 
        !           395:        C-X C-S   Save the file
        !           396: 
        !           397: Warning: on many systems JOVE will not be able to process the key C-S.
        !           398: In place of C-S, you should type C-\.  It is possible to make C-S work
        !           399: but C-\ is guaranteed always to work in place of C-S.
        !           400: 
        !           401: The old version of the file will be replaced.  When the operation is
        !           402: finished, JOVE prints the name and number of lines and characters
        !           403: saved.
        !           404: 
        !           405: If you forget to save and then edit a different file, JOVE will remind
        !           406: you that you made changes that have not been saved and then ask you
        !           407: whether you really want to quit.  (If you don't save them, they will
        !           408: be thrown away.  That might be what you want!)  You should answer with
        !           409: a "Y" to throw the changes away or "N" to abort quitting so you can
        !           410: then save the changes.
        !           411: 
        !           412: To make a new file, just edit it "as if" it already existed.  Then
        !           413: start typing in the text.  When you ask to "save" the file, JOVE will
        !           414: really create the file with the text that you have inserted.  From
        !           415: then on, you can consider yourself to be editing an already existing
        !           416: file.
        !           417: 
        !           418: It is not easy for you to try out editing a file and continue with the
        !           419: tutorial.  But you can always come back into the tutorial by starting
        !           420: it over and skipping forward.  So, when you feel ready, you should try
        !           421: editing a file named "FOO", putting some text in it, and saving it;
        !           422: then exit from JOVE and look at the file to be sure that it worked.
        !           423: 
        !           424: CONCLUSION OF PART ONE
        !           425: ----------------------
        !           426:    This is the end of the first part of  this  tutorial.   You  now  know
        !           427: enough to edit a file with JOVE, and save your work.  The second part of
        !           428: this tutorial, which starts with the next section,  discusses  searching,
        !           429: replacing,  word  processing,  and other modes of JOVE.  You may wish to
        !           430: stop here and practice for awhile before you continue.
        !           431: 
        !           432: 
        !           433: EXTENDING THE COMMAND SET
        !           434: -------------------------
        !           435: 
        !           436: There are many, many more JOVE commands than could possibly be put on
        !           437: all the control and meta characters.  JOVE gets around this with the X
        !           438: (eXtend) command.  This comes in two flavors:
        !           439: 
        !           440:        C-X     Character eXtend.  Followed by one character.
        !           441:        M-X     Named command eXtend.  Followed by a long name.
        !           442: 
        !           443: These are commands that are generally useful but used less than the
        !           444: commands you have already learned about.  You have already seen two of
        !           445: them: the file commands C-X C-F to Find and C-X C-S to Save.  Another
        !           446: example is the command to tell JOVE that you'd like to stop editing.
        !           447: The command to do this is C-X C-C.
        !           448: 
        !           449: There are many C-X commands.  The ones you need immediately are:
        !           450: 
        !           451:        C-X C-V         Visit file.
        !           452:        C-X C-S         Save file.
        !           453:        C-X C-C         Quit JOVE.  This does not save your files auto-
        !           454:                        matically, though if your files have been modi-
        !           455:                        fied, JOVE asks if you really want to quit.  The
        !           456:                        standard way to save and exit is C-X C-S C-X C-C.
        !           457: 
        !           458: Named eXtended commands are commands which are used even less
        !           459: frequently, or commands which are used only in certain modes.  These
        !           460: commands are usually called "commands".  An example is the command
        !           461: "apropos", which prompts for a keyword and then gives the names of all
        !           462: the commands that apropos for that keyword.  When you type M-X, JOVE
        !           463: prompts you at the bottom of the screen with ":" and you should type
        !           464: the name of the command you wish to call; in this case, "apropos".
        !           465: Just type "apr<Space>" and JOVE will complete the name.  JOVE will ask
        !           466: you for a keyword or phrase and you type the string that you want ask
        !           467: about.
        !           468: 
        !           469: >> Try typing M-X, followed by "apropos" or "apr" and then Return.
        !           470:    Then try typing "file" followed by a Return.
        !           471: 
        !           472: 
        !           473: MODE LINE
        !           474: ---------
        !           475: 
        !           476: If JOVE sees that you are typing commands slowly it shows them to you
        !           477: at the bottom of the screen in an area called the echo area.  The echo
        !           478: area contains the bottom line of the screen.  The line immediately above
        !           479: them is called the MODE LINE.  The mode line says something like
        !           480: 
        !           481:    JOVE (Text)  Buffer: [buffername]  "filename" *
        !           482: 
        !           483: This is a very useful "information" line.
        !           484: 
        !           485: The buffername is the name JOVE gave to the buffer, and it is usually
        !           486: related to the filename.  You already know what the filename means --
        !           487: it is the file you have edited.
        !           488: 
        !           489: The star means that you have made changes to the text.  Right after
        !           490: you visit or save a file, there is no star.
        !           491: 
        !           492: The part of the mode line inside the parentheses is to tell you what
        !           493: modes you are in.  The default mode is Text which is what you are in
        !           494: now.  It is an example of a "major mode".  There are several major
        !           495: modes in JOVE for editing different languages and text, such as C
        !           496: mode, Lisp mode, Text mode, etc.  At any time one and only one major
        !           497: mode is active, and its two-letter code can always be found in the
        !           498: mode line just where "Text" is now.  Each major mode makes a few
        !           499: commands behave differently.  For example, what JOVE considers as part
        !           500: of a valid expression or an identifier differs from one major mode to
        !           501: another, since each programming language has a different idea of what
        !           502: is a legal identifier.
        !           503: 
        !           504: Major modes are called major because there are also minor modes.  They
        !           505: are called minor because they aren't alternatives to the major modes,
        !           506: just minor modifications of them.  Each minor mode can be turned on or
        !           507: off by itself, regardless of what major mode you are in, and
        !           508: regardless of the other minor modes.  So you can use no minor modes,
        !           509: or one minor mode, or any combination of several minor modes.
        !           510: 
        !           511: One minor mode which is very useful, especially for editing English
        !           512: text, is "Auto Fill" mode.  When this mode is on, JOVE breaks the line
        !           513: in between words automatically whenever the line gets too long.  You
        !           514: can turn this mode on by doing M-X auto-fill-mode<Return>.  When the
        !           515: mode is on, you can turn it off by doing M-X auto-fill-mode<Return>--
        !           516: it toggles.
        !           517: 
        !           518: >> Type "M-X auto-fill-mode<Return>" now.  Then insert a line with a
        !           519:    bunch of words over again until you see it divide into two lines.
        !           520:    You must put in spaces between them because Auto Fill breaks lines
        !           521:    only at spaces.  Notice that "Fill" (the code for Auto Fill) appears
        !           522:    in the mode line after "Text" to indicate that you are in Text Fill
        !           523:    mode.
        !           524: 
        !           525: The margin is usually set at 78 characters, but you can change it with
        !           526: the set command.  The margin is kept in a variable just like the mode
        !           527: values.
        !           528: 
        !           529: >> Type "M-X set right-margin 20", then type in some text and see
        !           530:    JOVE fill lines of 20 characters with it.  Then set the margin
        !           531:    back to 72 using M-X set again.
        !           532: 
        !           533: 
        !           534: SEARCHING
        !           535: ---------
        !           536: 
        !           537: JOVE can do searches for strings (these are groups of contiguous
        !           538: characters or words) either forward through the file or backward
        !           539: through it.  To search for the string means that you are trying to
        !           540: find that string somewhere in the file.  Remember to use C-\ where it
        !           541: says C-S.
        !           542: 
        !           543: >> Now type C-S to start a search.  Type the word 'cursor', then
        !           544:    Return.
        !           545: 
        !           546: >> Type C-S Return to find the next occurrence of "cursor".
        !           547: 
        !           548: The C-S starts a search that looks for any occurrence of the search
        !           549: string AFTER the current cursor position.  But what if you want to
        !           550: search for something earlier in the text?  To do this one should type
        !           551: C-R for reverse search.  Everything that applies to C-S applies to C-R
        !           552: except that the direction of the search is reversed.
        !           553: 
        !           554: 
        !           555: REPLACING TEXT
        !           556: --------------
        !           557: 
        !           558: >> Move the cursor to the blank line two lines below this one.
        !           559:    Then type M-r changed<Return>altered<Return>.
        !           560: 
        !           561:    Notice how this line has changed: you've replaced the word
        !           562:    c-h-a-n-g-e-d with "altered" wherever it occurs after the cursor.
        !           563: 
        !           564: The more customary command for replacing strings is the interactive
        !           565: command query-replace-search, which has several options.  In essence,
        !           566: it shows each occurrence of the first string and asks you if you want to
        !           567: replace it or not.  You can also choose to edit around the string, or
        !           568: go on and replace all occurrences without asking further.
        !           569: 
        !           570:    This is invoked with M-Q..  When you start up a Query Replace, it
        !           571: will prompt you with "From" and "To", for what you want to change, and
        !           572: what you want to change it to.  JOVE will then move to the first
        !           573: occurence of the "From", and wait for a character.  You can type:
        !           574: 
        !           575:        <SPACE>         Do  the  replacement, and move to next occurrence
        !           576:                        of the "From" string.
        !           577:        <DEL>           Skip  the  current  "From" string and move to the 
        !           578:                        next one.
        !           579:        RETURN          Exit the Query Replace now.
        !           580:        r               Recursive Edit
        !           581:        p               Replace  all  further  occurences  of  the "From" 
        !           582:                        string, without asking. 
        !           583: 
        !           584: Recursive edit makes it possible to temporarily supend the Q-R-S, let the
        !           585: user go off and do something, and then return to the search after the  he
        !           586: is done. The command exit-jove (C-X C-C) returns from the recursive-edit.
        !           587: 
        !           588: GETTING MORE HELP
        !           589: -----------------
        !           590: 
        !           591: In this tutorial we have tried to supply just enough information to
        !           592: get you started using JOVE.  There is so much available in JOVE that
        !           593: it would be impossible to explain it all here.  However, you may want
        !           594: to learn more about JOVE since it has numerous desirable features that
        !           595: you don't know about yet.  JOVE has a some internal documentation.
        !           596: 
        !           597: The most basic HELP feature is the describe-key command which is
        !           598: available by typing C-X ? and then a command character. JOVE prints
        !           599: one line line on the bottom of the screen tell what command is bound to
        !           600: that key.  You can then get further information on that command
        !           601: using...
        !           602: 
        !           603: The describe-command command M-? will prompt for the name of a command
        !           604: and print out the section from the manual about that command. When you
        !           605: are finished reading it, type a Space or a C-G (quit) to bring your text
        !           606: back on the screen.
        !           607: 
        !           608: >> Type C-X ? Control-P.  The message at the bottom of the screen should
        !           609:    be something like "C-P is bound to previous-line".
        !           610: 
        !           611: Multi-character commands such as C-X C-C and <ESC>V are also allowed
        !           612: after C-X ?.
        !           613: 
        !           614: Now lets get more information about the previous-line command.
        !           615: 
        !           616: >> Type M-? previous-line.  When you are finished reading the
        !           617:    output, type a Space.
        !           618: 
        !           619: The "name of the command" is important for people who are customizing
        !           620: JOVE.  It is what appears in the JOVE CHART as the documentation for
        !           621: the command character.
        !           622: 
        !           623: One other form of help is the "apropos" command.  We have already tried
        !           624: using this command in an earlier part of this tutorial, but it should
        !           625: be mentioned again here.  Apropos prompts for a word or phrase and
        !           626: lists all the commands that contain that string.  If you couldn't
        !           627: remember the name of a certain command to read file, you could run the
        !           628: apropos command with the keyword "file" and it would list all the
        !           629: commands that contain "file".  To run apropos you would type
        !           630: 
        !           631:        M-X apr<Space>file<Return>
        !           632: 
        !           633: Finally, the full set of JOVE manuals are in five parts, and reside in
        !           634: the directory /usr/src/local/jove/doc under the names jove.1 to jove.5.
        !           635: These are in TROFF form, and the documents in /usr/src/local/jove/doc/docs 
        !           636: are in a form readable on the terminal or line-printer. Besides, someone
        !           637: around you must have a printed version which you can borrow! There is also 
        !           638: a chart of JOVE commands, sorted by function, which is handy as a quick
        !           639: reference. 
        !           640: 
        !           641: CONCLUSION OF PART TWO
        !           642: ----------------------
        !           643:    This concludes section two of the JOVE tutorial.  The  rest  of  this
        !           644: tutorial  describes  some of the very advanced features of JOVE, such as
        !           645: editing more than one file at once, writing your own macros, windows, and
        !           646: initialization  files.   Unless  you're  already  somewhat  familiar with
        !           647: JOVE, you should probably wait a little while before starting the  third
        !           648: section.
        !           649: 
        !           650: MARKS AND REGIONS
        !           651: -----------------
        !           652: 
        !           653:    In  general, a command which processes an arbitrary part of the buffer
        !           654: must know where to start and where to  stop.   In  JOVE,  such  commands
        !           655: usually  operate  on the text between point (where the cursor is now) and
        !           656: "the mark".  This range of text is called "the  region".   To  specify  a
        !           657: region, you set point to one end of it and mark at the other.  It doesn't
        !           658: matter which one is set first chronologically, or which one comes earlier
        !           659: in the text.  Here are some commands for setting the mark:
        !           660: 
        !           661:         C-@         Set the mark where point is.
        !           662:         C-<SPACE>   The same.
        !           663:         C-X C-X     Interchange mark and point.
        !           664: 
        !           665:    The  most  common  way  to set the mark is with the C-@ command or the
        !           666: C-<SPACE> command.  They set the mark where point is.  Then you can  move
        !           667: point away, leaving the mark behind.
        !           668: 
        !           669:    Since  terminals  have  only  one cursor, there is no way for JOVE to
        !           670: show you where the mark is located.  You have  to  remember.   The  usual
        !           671: solution  to this problem is to set the mark and then use it soon, before
        !           672: you forget where it is.  But you can see  where  the  mark  is  with  the
        !           673: command  C-X  C-X which puts the mark where point was and point where the
        !           674: mark was.  The extent of the region is  unchanged,  but  the  cursor  and
        !           675: point are now at the previous location of the mark.
        !           676: 
        !           677:    There  are many, many commands which use regions (the area between the
        !           678: point and the mark), which we have not  mentioned  here.   They  are  all
        !           679: similar to such things as "transpose paragraphs", etc., and can be found
        !           680: in the wall chart.
        !           681: 
        !           682: BUFFERS
        !           683: -------
        !           684:    When editing a file, JOVE reads the file  into  a  buffer.   This  is
        !           685: where the modifcations are done, and when you save the file with C-X C-S,
        !           686: the buffer is actually written out to the file.   JOVE  permits  you  to
        !           687: have  up  to 100 buffers, so, in essence, you can edit up to 100 files at
        !           688: the same time.
        !           689: 
        !           690:    If you want to list the buffers you have, use  the  C-X  C-B  command.
        !           691: This  will  display  a  list of the buffers, their numbers and names, and
        !           692: whether or not they've been modified.
        !           693: 
        !           694: >>> Do this now, type C-X C-B.  When you're done looking, type a <SPACE>.
        !           695: 
        !           696:    You probably noticed you only have one buffer, named "Main".   If  you
        !           697: were  editing  more  than one file, however, you would have more than one
        !           698: buffer.  There are two ways to edit more than one file.  The first is  to
        !           699: call JOVE with more than one file on the command line.  For example, the
        !           700: command
        !           701: 
        !           702:                              jove a b c
        !           703: 
        !           704: would create three buffers (named Main, b, and c),  each  one  containing
        !           705: one  file.   The  other  way  is  to use the C-X C-F command (called Find
        !           706: File).  This command prompts you for a filename, and then reads that file
        !           707: into a new buffer, and puts you into the new buffer.
        !           708: 
        !           709:    To change buffers, use the C-X B command.  JOVE will prompt you for a
        !           710: buffer name, and print a name in parentheses.  If you just hit a carriage
        !           711: return without typing a buffer name, you will go to the buffer named in
        !           712: parentheses.  Another way to change buffers is to give C-X B a NUMBER.
        !           713: This goes to the buffer NUMBER, rather than using the buffer name.
        !           714: 
        !           715: >>> Get a piece of paper, and write down the  following  commands.   Then
        !           716:     run  them, to  get a feel for playing with buffers.  BE SURE TO WRITE 
        !           717:     THEM DOWN! We don't want to get you lost!
        !           718: 
        !           719:                        C-X C-B
        !           720:                        <SPACE>
        !           721:                        C-X C-F         (type "/etc/motd" to the prompt)
        !           722:                        C-X C-B
        !           723:                        <SPACE>
        !           724:                        C-X B
        !           725:                        <RETURN>
        !           726: 
        !           727:    Well, wasn't that fun?  Now you know how  to  get  another  file  into
        !           728: another  buffer,  and then "bounce" back and forth.  A nice feature about
        !           729: editing more than one file is that you can transfer text from one file to
        !           730: the  other.   Just  kill  it in one file, change buffers, and then put it
        !           731: back with C-Y.
        !           732: 
        !           733: WINDOWS
        !           734: -------
        !           735:    What you see on your screen is a "window" into the buffer you are 
        !           736: editing. JOVE allows you to have more than one window on your screen, and
        !           737: you can therefore look into two, or more buffers at once. You can also look at
        !           738: different parts of the same file. The command C-X 2 splits your screen into
        !           739: two windows, both looking into the same buffer. The command C-X 4 f will
        !           740: display a specified file in the other window, C-X 4 b will display a specified
        !           741: buffer in the other window, C-X n moves to the next window on the screen,
        !           742: while C-X p moves to the previous window.
        !           743: 
        !           744: >>> Try the command C-X 2, which splits the screen into two windows, and
        !           745:     displays the same buffer in both. You'll notice that you are in the new
        !           746:     window. Try some commmands in this window, like C-V, or M-V, to move
        !           747:     around in the file. Observe that the other window doesn't change its
        !           748:     position relative to the buffer. This gives you a way of looking at two
        !           749:     parts of the same file. 
        !           750: 
        !           751: >>> Now try to type some text, or change something. You will see the changes
        !           752:     affecting the text in the other window as well. That is because both
        !           753:     windows are displaying the same buffer, and therefor the same text. Changes
        !           754:     in the contents of the buffer have to affect both windows.
        !           755: 
        !           756: >>> Let's now try to edit another file in this window. Give the command 
        !           757:     C-X C-F and type the name of file as "/etc/motd". You now have two files
        !           758:     on your screen at the same time. 
        !           759: 
        !           760: >>> Type the command M- C-V (Meta followed by C-V) and watch the other window
        !           761:     page downward. This is very convenient when doing a variety of tasks, like
        !           762:     correcting errors in a file - edit the file, with the list of errors in
        !           763:     the other window!
        !           764: 
        !           765: >>> Finally, let's get back to the main window (with this document) by typing
        !           766:     C-X p (or C-X n, since there are only two windows). Expand this window 
        !           767:     to fill the entire screen by typing C-X 1. 
        !           768: 
        !           769: Enjoyable, wasn't it! There are other commands for shrinking and growing
        !           770: windows, but one of the most useful when editing text like this is the command
        !           771: which invokes JOVE's interactive spelling checker. It's called spell-buffer.
        !           772: It runs the UNIX spell(1) command on the buffer, and puts the errors in
        !           773: another buffer in another window, and allows you to edit the list to remove
        !           774: the words you know are not errors. Then, type C-X C-C, which usually gets you
        !           775: out of JOVE but in this case only gets you out of the spell-edit mode. You can
        !           776: now go through the remaining spelling errors word-by-word, and you can correct
        !           777: them. The commands for this are C-X C-N (for next error) and C-X C-P (for
        !           778: previous error.) 
        !           779: 
        !           780: >>> Try the spell-buffer command now, by going M-X spel <space> and watch.
        !           781: Delete a few errors, then type C-X C-C, and do a few C-X C-N's to find some
        !           782: errors in this document. We've left a few ! (deliberately, of course!!!)
        !           783:     
        !           784: 
        !           785: MACROS
        !           786: ------
        !           787:    A "keyboard macro" is a command defined by the user  to  abbreviate  a
        !           788: sequence  of  other commands.  If you discover that you are about to type
        !           789: C-N C-D forty times, you can define a keyboard macro to do  C-N  C-D  and
        !           790: call  it  with  a  repeat  count  of forty.  The commands which deal with
        !           791: keyboard macros are:
        !           792: 
        !           793:         C-X (       Start defining a keyboard macro.
        !           794:         C-X )       End the definition of a keyboard macro.
        !           795:         C-X E       Execute the most recent keyboard macro.
        !           796: 
        !           797:    You define a keyboard macro while executing the commands which are the
        !           798: definition.   Put  differently, as you are defining a keyboard macro, the
        !           799: definition is being executed for the first time.  This way, you  can  see
        !           800: what  the  effects of your commands are, so that you don't have to figure
        !           801: them out in your head.  When you are  finished,  the  keyboard  macro  is
        !           802: defined and also has been, in effect, executed once.  You can then do the
        !           803: whole thing over again by invoking the macro.
        !           804: 
        !           805:    To start defining a keyboard macro, type the C-X ( command.  From then
        !           806: on,  your  commands  continue to be executed, but also become part of the
        !           807: definition of the macro.  "Def" appears in the mode line to remind you of
        !           808: what  is  going  on.  When you are finished, the C-X ) command terminates
        !           809: the definition (without becoming part of it!).
        !           810: 
        !           811:    The macro thus defined can be invoked again with  the  C-X  E  command
        !           812: which  may  be  given a repeat count as a numeric argument to execute the
        !           813: macro many times.  C-X ) can also be given a repeat count as an argument,
        !           814: in  which  case it repeats the macro that many times right after defining
        !           815: it, but defining the macro counts as the first repetition  (since  it  is
        !           816: executed  as  you define it).  So, giving C-X ) an argument of 2 executes
        !           817: the macro immediately one additional time.  An argument of zero to C-X  E
        !           818: or C-X ) means repeat the macro indefinitely (until it gets an error).
        !           819: 
        !           820:    If  you  want  to  perform  an operation on each line, then either you
        !           821: should start by positioning point on the line above the first one  to  be
        !           822: processed  and  then begin the macro definition with a C-N, or you should
        !           823: start on the proper line and end with a C-N.  Either way,  repeating  the
        !           824: macro will operate on successive lines.
        !           825: 
        !           826: >>> Place the cursor at the top of the screen and then enter the commands
        !           827:     below.  Note that after the first  command, "Def" appears in the mode 
        !           828:     line.
        !           829: 
        !           830:                        C-X (
        !           831:                        C-A
        !           832:                        *****
        !           833:                        M-F
        !           834:                        M-F
        !           835:                        M-F
        !           836:                        -----
        !           837:                        C-N
        !           838:                        C-X )
        !           839: 
        !           840: >>> Notice that as you typed those  commands in, they were executed.  Now   
        !           841:     move  the cursor  down a couple of lines, but keep it near the top of 
        !           842:     the  screen.  Type the  command C-U C-X E.  This will  execute your 
        !           843:     macro 4 times.
        !           844: 
        !           845:    Although not described here, it is possible  to both name  your macros,
        !           846: and to save and restore them from files.  See the documentation for this.
        !           847: 
        !           848: INITIALIZATION FILES
        !           849: --------------------
        !           850:    You can initialize JOVE just the way you like it by putting a file
        !           851: named ".joverc" in your home directory.  To see what this file should
        !           852: look like, look at the one in the directory /usr/src/local/jove/doc. The
        !           853: file system.rc is one such file, the other example is example.rc. It
        !           854: should be noted that the commands in this file contain control
        !           855: characters, which may make it hard to read.  Use the "cat -v" command
        !           856: for this. 
        !           857: 
        !           858:    To  insert control  characters into  a file with JOVE, you should use 
        !           859: the C-Q command.  Type C-Q <X> where <X> is the control character. Note that
        !           860: C-Q will not work on some terminals, because it, like C-S, is used for
        !           861: suspending and restoring the output to the terminal. In that case, use
        !           862: the command M-X quo <space> <X>. 
        !           863: 
        !           864: INTERACTIVE SHELLS
        !           865: ------------------
        !           866: 
        !           867:    One of JOVE's very powerful features is the ability to start up shells
        !           868: within the editor, and then use shell commands within the screen editing 
        !           869: environment. To execute a command again, just cursor-up to it, change it if
        !           870: you want with all the normal editing keys, and hit RETURN once to bring it
        !           871: down to your present command line, and again to execute it. We'll bow out
        !           872: here suggesting you consult the manual for hard details, or type M-X shell
        !           873: <space> if you are the adventurous type! 
        !           874: 
        !           875: CONCLUSION
        !           876: ----------
        !           877: 
        !           878: Remember, to exit use C-X C-C.
        !           879: 
        !           880: This tutorial is meant to be understandable to all new users, so if
        !           881: you found something unclear, don't sit and blame yourself - complain!
        !           882: 
        !           883: You'll probably find that if you use JOVE for a few days you won't
        !           884: be able to give it up.  Initially it may give you trouble.  But remember
        !           885: that this is the case with any editor, especially one that can do many,
        !           886: many things.  And JOVE can do practically everything.
        !           887: 
        !           888:    Hopefully you have enjoyed this tutorial,  and,  more  importantly,  I
        !           889: hope you've learned something.  If you use JOVE for about a week, and be
        !           890: patient, you will find that it is more convenient  and  friendly  to  use
        !           891: than any other editor you've used.  I know.  I did.
        !           892: 
        !           893: ---------------------------------------------------------------------------
        !           894: This tutorial was originally written by Richard Stallman for EMACS and
        !           895: modified by Doug Kingston and Jonathan Payne for JOVE. The section on windows
        !           896: was added at UofT by Mark Moraes. Comments on this document should be sent to
        !           897: [email protected]. (12 February '86), or locally (at UofT), to 
        !           898: [email protected].
        !           899: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.