Annotation of 43BSDTahoe/new/jove/doc/jove.1, revision 1.1.1.1

1.1       root        1: .\" ditroff -ms
                      2: .de IQ
                      3: \\fI\\$1\\fP
                      4: ..
                      5: .de dc
                      6: .NH 2
                      7: \\$1
                      8: .if '\\$2'(variable)' (variable)
                      9: .if !'\\$2'(variable)' (\\$2)
                     10: .LP
                     11: ..
                     12: .nr LL 6.5i
                     13: .nr LT 6.5i
                     14: .EH 'USD:17-%''JOVE Manual for UNIX Users'
                     15: .OH 'JOVE Manual for UNIX Users''USD:17-%'
                     16: .LP
                     17: .TL
                     18: JOVE Manual for UNIX Users
                     19: .AU
                     20: Jonathan Payne
                     21: (revised for 4.3BSD by Doug Kingston and Mark Seiden)
                     22: .AI
                     23: .AB no
                     24: .AE
                     25: .NH 1
                     26: Introduction
                     27: .XS \n(PN
                     28: \*(SN Introduction
                     29: .XE
                     30: .LP
                     31: \s-2JOVE\s0*
                     32: .FS
                     33: *\s-2JOVE\s0 stands for Jonathan's Own Version of Emacs.
                     34: .FE
                     35: is an advanced, self-documenting, customizable real-time display editor.
                     36: It (and this tutorial introduction) are based on the original EMACS
                     37: editor and user manual written at M.I.T. by Richard Stallman+.
                     38: .FS
                     39: +Although \s-2JOVE\s0 is meant to be compatible with EMACS,
                     40: and indeed many of the basic commands are very similar,
                     41: there are some major differences between the two editors,
                     42: and you should not rely on their behaving identically.
                     43: .FE
                     44: .LP
                     45: \s-2JOVE\s0 is considered a
                     46: .I display 
                     47: editor because normally the text being
                     48: edited is visible on the screen and is updated automatically as you
                     49: type your commands.
                     50: .LP
                     51: It's considered a
                     52: .I real-time 
                     53: editor because the display is updated very
                     54: frequently, usually after each character or pair of characters you type.
                     55: This minimizes the amount of information you must keep in your
                     56: head as you edit.
                     57: .LP
                     58: \s-2JOVE\s0 is 
                     59: .I advanced 
                     60: because it provides facilities that go beyond
                     61: simple insertion and deletion:
                     62: filling of text;
                     63: automatic indentations of programs;
                     64: view more than one file at once;
                     65: and dealing in terms of characters, words, lines, sentences and paragraphs.
                     66: It is much easier
                     67: to type one command meaning "go to the end of the paragraph" than to
                     68: find the desired spot with repetition of simpler commands.
                     69: .LP
                     70: .I Self-documenting 
                     71: means that at almost any time you can easily
                     72: find out what a command does,
                     73: or to find all the commands that pertain to a topic.
                     74: .LP
                     75: .I Customizable
                     76: means that you can change the definition of \s-2JOVE\s0 commands
                     77: in little ways.
                     78: For example, you can rearrange the command set;
                     79: if you prefer to use arrow keys for the four basic cursor motion commands
                     80: (up, down, left and right), you can.
                     81: Another sort of customization is
                     82: writing new commands by combining built in commands.
                     83: .NH 1
                     84: The Organization of the Screen
                     85: .XS \n(PN
                     86: \*(SN The Organization of the Screen
                     87: .XE
                     88: .LP
                     89: \s-2JOVE\s0 divides the screen up into several sections.
                     90: The biggest of these sections is used to display the text you are editing.
                     91: The terminal's cursor shows the position of \fIpoint\fP,
                     92: the location at which editing takes place.
                     93: While the cursor appears to point \fIat\fP a character,
                     94: point should be thought of as between characters;
                     95: it points \fIbefore\fP the character that the cursor appears on top of.
                     96: Terminals have only one cursor,
                     97: and when output is in progress it must appear where the typing is being done.
                     98: This doesn't mean that point is moving;
                     99: it is only that \s-2JOVE\s0 has no way of
                    100: showing you the location of point except when the terminal is idle.
                    101: .LP
                    102: The lines of the screen are usually available for displaying text but
                    103: sometimes are pre-empted by typeout from certain commands (such as a
                    104: listing of all the editor commands).
                    105: Most of the time,
                    106: output from commands like these is only desired for a short period of time,
                    107: usually just long enough to glance at it.
                    108: When you have finished looking at the output,
                    109: you can type Space to make your text reappear.
                    110: (Usually a Space that you type inserts itself, but when there is typeout on
                    111: the screen, it does nothing but get rid of that).
                    112: Any other command executes normally,
                    113: .I after
                    114: redrawing your text.
                    115: .NH 2
                    116: The Message Line
                    117: .XS \n(PN 5n
                    118: \*(SN The Message Line
                    119: .XE
                    120: .LP
                    121: The bottom line on the screen, called the
                    122: \fImessage line\fP,
                    123: is reserved for printing messages and for accepting input from the user,
                    124: such as filenames or search strings.
                    125: When
                    126: \s-2JOVE\s0 
                    127: prompts for input,
                    128: the cursor will temporarily appear on the bottom line, waiting for you
                    129: to type a string.
                    130: When you have finished typing your input, you can
                    131: type a Return to send it to \s-2JOVE\s0.
                    132: If you change your mind about running the command that is waiting for input,
                    133: you can type Control-G to abort,
                    134: and you can continue with your editing.
                    135: .LP
                    136: When \s-2JOVE\s0 is prompting for a filename,
                    137: all the usual editing facilities can be used to fix typos and such;
                    138: in addition, \s-2JOVE\s0 has the following extra functions:
                    139: .IP "^N"
                    140: Insert the next filename from the argument list.
                    141: .IP "^P"
                    142: Insert the previous filename from the argument list.
                    143: .IP "^R"
                    144: Insert the full pathname of the file in the current buffer.
                    145: .LP
                    146: Sometimes you will see \fB--more--\fP on the message line.
                    147: This happens when typeout from a command is too long to fit in the screen.
                    148: It means that if you type a Space the next screenful of typeout will be
                    149: printed.
                    150: If you are not interested,
                    151: typing anything but a Space will cause the rest of the output to be discarded.
                    152: Typing C-G will discard the output and print \fIAborted\fP where the \fB--more--\fP was.
                    153: Typing any other command will discard the rest of the output and
                    154: also execute the command.
                    155: .LP
                    156: The message line and the list of filenames from the shell command that
                    157: invoked \s-2JOVE\s0 are kept in a special buffer called
                    158: \fIMinibuf\fP that can be edited like any other buffer.
                    159: .NH 2
                    160: The Mode Line
                    161: .XS \n(PN 5n
                    162: \*(SN The Mode Line
                    163: .XE
                    164: .LP
                    165: At the bottom of the screen, but above the message line, is the
                    166: \fImode line\fP.  The mode line format looks like this:
                    167: .DS I
                    168: \fBJOVE (major minor)   Buffer: bufr  "file" *\fP
                    169: .DE
                    170: \fImajor\fP is the name of the current \fImajor mode\fP.
                    171: At any time, \s-2JOVE\s0 can be in only one major mode at a time.
                    172: Currently there are only four major modes: \fIFundamental\fP,
                    173: \fIText\fP, \fILisp\fP and \fIC\fP.
                    174: .LP
                    175: \fIminor\fP is a list of the minor modes that are turned on.
                    176: \fBAbbrev\fP means that \fIWord Abbrev\fP mode is on;
                    177: \fBAI\fP means that \fIAuto Indent\fP mode is on;
                    178: \fBFill\fP means that \fIAuto Fill\fP mode is on;
                    179: \fBOvrWt\fP means that \fIOver Write\fP mode is on.
                    180: \fBDef\fP means that you are in the process of defining a keyboard macro.
                    181: This is not really a mode,
                    182: but it's useful to be reminded about it.
                    183: The meanings of these modes are described later in this document.
                    184: .LP
                    185: \fIbufr\fP is the name of the currently selected \fIbuffer\fP.
                    186: Each buffer has its own name and holds a file being edited;
                    187: this is how \s-2JOVE\s0 can hold several files at once.
                    188: But at any given time you are editing only one of them,
                    189: the \fIselected\fP buffer.
                    190: When we speak of what some command does to "the buffer",
                    191: we are talking about the currently selected buffer.
                    192: Multiple buffers makes it easy to switch around between several files,
                    193: and then it is very useful that
                    194: the mode line tells you which one you are editing at any time.  (You
                    195: will see later that it is possible to divide the
                    196: screen into multiple \fIwindows\fP, each showing a different buffer.  If you
                    197: do this, there is a mode line beneath each window.)
                    198: .LP
                    199: \fIfile\fP is the name of the file that you are editing.
                    200: This is the default filename for commands that expect a filename as input.
                    201: .LP
                    202: The asterisk at the end of the mode line means that there are changes in
                    203: the buffer that have not been saved in the file.
                    204: If the file has not been changed since it was read in or saved,
                    205: there is no asterisk.
                    206: .NH 1
                    207: Command Input Conventions
                    208: .XS \n(PN
                    209: \*(SN Command Input Conventions
                    210: .XE
                    211: .LP
                    212: .NH 2
                    213: Notational Conventions for ASCII Characters
                    214: .XS \n(PN 5n
                    215: \*(SN Notational Conventions for ASCII Characters
                    216: .XE
                    217: .LP
                    218: In this manual,
                    219: "Control" characters
                    220: (that is, characters that are typed with the Control key
                    221: and some other key at the same time)
                    222: are represented by "C-" followed by another character.
                    223: Thus,
                    224: C-A is the character you get when you type A with the Control key
                    225: (sometimes labeled CTRL) down.
                    226: Most control characters when present in the \s-2JOVE\s0
                    227: buffer are displayed with a caret; thus, ^A for C-A.
                    228: Rubout (or DEL) is displayed as ^?, escape as ^[.
                    229: .NH 2
                    230: Command and Filename Completion
                    231: .XS \n(PN 5n
                    232: \*(SN Command and Filename Completion
                    233: .XE
                    234: .LP
                    235: When you are typing the name of a \s-2JOVE\s0 command, you need type only
                    236: enough letters to make the name unambiguous.  At any point in the course of
                    237: typing the name, you can type question mark (?) to see a list of all the
                    238: commands whose names begin with the characters you've already typed; you can
                    239: type Space to have \s-2JOVE\s0 supply as many characters as it can; or you
                    240: can type Return to complete the command if there is only one possibility.
                    241: For example, if you have typed the letters "\fIau\fP" and you then type a
                    242: question mark, you will see the list
                    243: .DS I
                    244:    auto-execute-command
                    245:    auto-execute-macro
                    246:    auto-fill-mode
                    247:    auto-indent-mode
                    248: .DE
                    249: If you type a Return at this point, \s-2JOVE\s0 will complain by ringing
                    250: the bell, because the letters you've typed do not unambiguously specify a
                    251: single command.  But if you type Space, \s-2JOVE\s0 will supply the
                    252: characters "\fIto-\fP" because all commands that begin "\fIau\fP" also
                    253: begin "\fIauto-\fP".  You could then type the letter "\fIf\fP" followed
                    254: by either Space or Return, and \s-2JOVE\s0 would complete the entire
                    255: command.
                    256: .LP
                    257: Whenever \s-2JOVE\s0 is prompting you for a filename, say in the
                    258: \fIfind-file\fP command, you also need only type enough of the name to
                    259: make it unambiguous with respect to files that already exist.  In this
                    260: case, question mark and Space work just as they do in command completion,
                    261: but Return always accepts the name just as you've typed it, because you
                    262: might want to create a new file with a name similar to that of an
                    263: existing file.  The variable \fIbad-filename-extensions\fP contains a
                    264: list of words separated by spaces which are to be considered bad
                    265: filename extensions, and so will not be counted in filename completion.
                    266: The default is ".o" so if you have jove.c and jove.o in the same
                    267: directory, the filename completion will not complain of an ambiguity
                    268: because it will ignore jove.o.
                    269: 
                    270: .NH 1
                    271: Commands and Variables
                    272: .XS \n(PN
                    273: \*(SN Commands and Variables
                    274: .XE
                    275: .LP
                    276: \s-2JOVE\s0 is composed of \fIcommands\fP
                    277: which have long names such as
                    278: \fInext-line\fP.
                    279: Then \fIkeys\fP such as C-N are connected to
                    280: commands through the \fIcommand dispatch table\fP.
                    281: When we say that C-N moves the cursor down a line,
                    282: we are glossing over a distinction which is unimportant for ordinary use,
                    283: but essential for simple customization:
                    284: it is the command \fInext-line\fP which knows how to move a down line,
                    285: and C-N moves down a line because it is connected to that command.
                    286: The name for this connection is a \fIbinding\fP; we say that the key
                    287: C-N \fIis bound to\fP the command \fInext-line\fP.
                    288: .LP
                    289: Not all commands are bound to keys.  To invoke a command that isn't bound
                    290: to a key, you can type the sequence ESC X, which is bound to the command
                    291: \fIexecute-named-command\fP.  You will then be able to type the name of
                    292: whatever command you want to execute on the message line.
                    293: .LP
                    294: Sometimes the description of a command will say
                    295: "to change this, set the variable \fImumble\-foo\fP".
                    296: A variable is a name used to remember a value.
                    297: \s-2JOVE\s0 contains variables which are there so that you can change
                    298: them if you want to customize.
                    299: The variable's value is examined by some command,
                    300: and changing that value makes the command behave differently.
                    301: Until you are interesting in customizing \s-2JOVE\s0,
                    302: you can ignore this information.
                    303: .NH 2
                    304: Prefix Characters
                    305: .XS \n(PN 5n
                    306: \*(SN Prefix Characters
                    307: .XE
                    308: .LP
                    309: Because there are more command names than keys,
                    310: \s-2JOVE\s0 provides
                    311: \fIprefix characters\fP to increase the number of commands that can
                    312: be invoked quickly and easily.
                    313: When you type a prefix character \s-2JOVE\s0 will wait
                    314: for another character before deciding what to do.
                    315: If you wait more than a second or so,
                    316: \s-2JOVE\s0 will print the prefix character on the
                    317: message line as a reminder and leave the cursor down there until you type your next
                    318: character.
                    319: There are two prefix characters built into \s-2JOVE\s0:
                    320: Escape and Control-X.
                    321: How the next character is interpreted depends on which
                    322: prefix character you typed.
                    323: For example,
                    324: if you type Escape followed by B you'll run \fIbackward-word\fP,
                    325: but if you type Control-X followed by B you'll run \fIselect-buffer\fP.
                    326: Elsewhere in this manual, the Escape key is indicated as "ESC", which is
                    327: also what \s-2JOVE\s0 displays on the message line for Escape.
                    328: .NH 2
                    329: Help
                    330: .XS \n(PN
                    331: \*(SN Help
                    332: .XE
                    333: .LP
                    334: To get a list of keys and their associated commands,
                    335: you type ESC X \fIdescribe-bindings\fP.
                    336: If you want to describe a single key,
                    337: ESC X \fIdescribe-key\fP will work.  A description of an
                    338: individual command is available by using ESC X \fIdescribe-command\fP,
                    339: and descriptions of variables by using  ESC X \fIdescribe-variable\fP.
                    340: If you can't remember the name of the thing you want to know about,
                    341: ESC X \fIapropos\fP will tell you if a command or variable has a given
                    342: string in its name.  For example, ESC X \fIapropos describe\fP will
                    343: list the names of the four describe commands mentioned briefly in this
                    344: section.
                    345: .NH 1
                    346: Basic Editing Commands
                    347: .XS \n(PN
                    348: \*(SN Basic Editing Commands
                    349: .XE
                    350: .LP
                    351: .NH 2
                    352: Inserting Text
                    353: .XS \n(PN 5n
                    354: \*(SN Inserting Text
                    355: .XE
                    356: .LP
                    357: To insert printing characters into the text you are editing,
                    358: just type them.
                    359: All printing characters you type are inserted into the text at
                    360: the cursor (that is, at \fIpoint\fP),
                    361: and the cursor moves forward.
                    362: Any characters after the cursor move forward too.
                    363: If the text in the buffer is FOOBAR,
                    364: with the cursor before the B,
                    365: then if you type XX,
                    366: you get FOOXXBAR,
                    367: with the cursor still before the B.
                    368: .LP
                    369: To correct text you have just inserted,
                    370: you can use Rubout.
                    371: Rubout deletes the character \fIbefore\fP the cursor (not the one that the
                    372: cursor is on top of or under; that is the character \fIafter\fP the
                    373: cursor).
                    374: The cursor and all characters after it move backwards.
                    375: Therefore,
                    376: if you typing a printing character and then type Rubout,
                    377: they cancel out.
                    378: .LP
                    379: To end a line and start typing a new one,
                    380: type Return.
                    381: Return operates by inserting a \fIline-separator\fP,
                    382: so if you type Return in
                    383: the middle of a line,
                    384: you break the line in two.
                    385: Because a line-separator is just a single character,
                    386: you can type Rubout at the
                    387: beginning of a line to delete the line-separator and join it with the
                    388: preceding line.
                    389: .LP
                    390: As a special case, if you type Return at the end of a line and there are
                    391: two or more empty lines just below it, \s-2JOVE\s0 does not insert a
                    392: line-separator but instead merely moves to the next (empty) line.  This
                    393: behavior is convenient when you want to add several lines of text in the
                    394: middle of a buffer.  You can use the Control-O (\fInewline-and-backup\fP)
                    395: command to "open" several empty lines at once; then you can insert the new
                    396: text, filling up these empty lines.  The advantage is that \s-2JOVE\s0 does
                    397: not have to redraw the bottom part of the screen for each Return you type,
                    398: as it would ordinarily.  That "redisplay" can be both slow and distracting.
                    399: .LP
                    400: If you add too many characters to one line,
                    401: without breaking it with Return,
                    402: the line will grow too long to display on one screen line.
                    403: When this happens,
                    404: \s-2JOVE\s0 puts an "!" at the extreme right margin,
                    405: and doesn't bother to display the rest of the line unless the
                    406: cursor happens to be in it.
                    407: The "!" is not part of your text;
                    408: conversely,
                    409: even though you can't see the rest of your line,
                    410: it's still there,
                    411: and if you break the line,
                    412: the "!" will go away.
                    413: .LP
                    414: Direct insertion works for printing characters and space,
                    415: but other
                    416: characters act as editing commands and do not insert themselves.
                    417: If you need to insert a control character,
                    418: Escape,
                    419: or Rubout,
                    420: you must first \fIquote\fP it by typing the Control-Q command first.
                    421: .NH 2
                    422: Moving the Cursor
                    423: .XS \n(PN 5n
                    424: \*(SN Moving the Cursor
                    425: .XE
                    426: .LP
                    427: To do more than insert characters,
                    428: you have to know how to move the cursor.
                    429: Here are a few of the commands for doing that.
                    430: .IP "C-A" 15n
                    431: Move to the beginning of the line.
                    432: .IP "C-E" 15n
                    433: Move to the end of the line.
                    434: .IP "C-F" 15n
                    435: Move forward over one character.
                    436: .IP "C-B" 15n
                    437: Move backward over one character.
                    438: .IP "C-N" 15n
                    439: Move down one line,
                    440: vertically.
                    441: If you start in the middle of one line,
                    442: you end in the middle of the next.
                    443: .IP "C-P" 15n
                    444: Move up one line,
                    445: vertically.
                    446: .IP "ESC <" 15n
                    447: Move to the beginning of the entire buffer.
                    448: .IP "ESC >" 15n
                    449: Move to the end of the entire buffer.
                    450: .IP "ESC ," 15n
                    451: Move to the beginning of the visible window.
                    452: .IP "ESC ." 15n
                    453: Move to the end of the visible window.
                    454: .NH 2
                    455: Erasing Text
                    456: .XS \n(PN 5n
                    457: \*(SN Erasing Text
                    458: .XE
                    459: .LP
                    460: .IP "Rubout" 15n
                    461: Delete the character before the cursor.
                    462: .IP "C-D" 15n
                    463: Delete the character after the cursor.
                    464: .IP "C-K" 15n
                    465: Kill to the end of the line.
                    466: .LP
                    467: You already know about the Rubout command which deletes the character
                    468: before the cursor.
                    469: Another command,
                    470: Control-D,
                    471: deletes the character
                    472: after the cursor,
                    473: causing the rest of the text on the line to shift left.
                    474: If Control-D is typed at the end of a line,
                    475: that line and the next line are joined together.
                    476: .LP
                    477: To erase a larger amount of text,
                    478: use the Control-K command,
                    479: which kills a line at a time.
                    480: If Control-K is done at the beginning or
                    481: middle of a line,
                    482: it kills all the text up to the end of the line.
                    483: If Control-K is done at the end of a line,
                    484: it joins that line and the next line.
                    485: If Control-K is done twice, it kills the rest of the line and the line
                    486: separator also.
                    487: .NH 2
                    488: Files \(em Saving Your Work
                    489: .XS \n(PN 5n
                    490: \*(SN Files \(em Saving Your Work
                    491: .XE
                    492: .LP
                    493: The commands above are sufficient for creating text in the \s-2JOVE\s0 buffer.
                    494: The more advanced \s-2JOVE\s0 commands just make things easier.
                    495: But to keep any text permanently you must put it in a \fIfile\fP.
                    496: Files are the objects which
                    497: .UX
                    498: uses for storing data for a length of time.
                    499: To tell \s-2JOVE\s0 to read text into a file,
                    500: choose a filename,
                    501: such as \fIfoo.bar\fP,
                    502: and type C-X C-R \fIfoo.bar\fP<return>.
                    503: This reads the file \fIfoo.bar\fP so that its contents appear on the screen
                    504: for editing.
                    505: You can make changes,
                    506: and then save the file by typing C-X C-S (save-file).
                    507: This makes the changes permanent and actually changes the file \fIfoo.bar\fP.
                    508: Until then,
                    509: the changes are only inside \s-2JOVE\s0,
                    510: and the file \fIfoo.bar\fP is not really changed.
                    511: If the file \fIfoo.bar\fP doesn't exist,
                    512: and you want to create it,
                    513: read it as if it did exist.
                    514: When you save your text with C-X C-S the file will be created.
                    515: .NH 2
                    516: Exiting and Pausing \(em Leaving \s-2JOVE\s0
                    517: .XS \n(PN 5n
                    518: \*(SN Exiting and Pausing \(em Leaving \s-2JOVE\s0
                    519: .XE
                    520: .LP
                    521: The command C-X C-C (\fIexit-jove\fP) will terminate the \s-2JOVE\s0
                    522: session and return to the shell.  If there are modified but 
                    523: unsaved buffers, \s-2JOVE\s0 will ask you for confirmation, and you
                    524: can abort the command, look at what buffers are
                    525: modified but unsaved using C-X C-B (\fIlist-buffers\fP), save the 
                    526: valuable ones, and then exit.  If what you want to do, on the other hand,
                    527: is \fIpreserve\fP the editing session but return to the shell temporarily
                    528: you can (under Berkeley 
                    529: .UX
                    530: only) issue the command ESC S (\fIpause-jove\fP), do your 
                    531: .UX 
                    532: work within the c-shell, then return to \s-2JOVE\s0 using the 
                    533: \fIfg\fP command to resume editing at the point where you paused.
                    534: For this sort of situation you might consider using an \fIinteractive
                    535: shell\fP (that is, a shell in a \s-2JOVE\s0 window) which lets you use
                    536: editor commands to manipulate your 
                    537: .UX 
                    538: commands (and their output) while never leaving the editor.
                    539: (The interactive shell feature is described below.)
                    540: .NH 2
                    541: Giving Numeric Arguments to \s-2JOVE\s0 Commands
                    542: .XS \n(PN 5n
                    543: \*(SN Giving Numeric Arguments to \s-2JOVE\s0 Commands
                    544: .XE
                    545: .LP
                    546: Any \s-2JOVE\s0 command can be given a \fInumeric argument\fP.
                    547: Some commands interpret the argument as a repetition count.
                    548: For example,
                    549: giving an argument of ten to the C-F command (forward-character) moves forward
                    550: ten characters.
                    551: With these commands,
                    552: no argument is equivalent to an argument of 1.
                    553: .LP
                    554: Some commands use the value of the argument,
                    555: but do something peculiar (or nothing) when there is no argument.
                    556: For example,
                    557: ESC G (\fIgoto-line\fP) with an argument \fBn\fP
                    558: goes to the beginning of the \fBn\fP'th line.
                    559: But ESC G with no argument doesn't do anything.
                    560: Similarly, C-K with an argument kills that many lines, including their line
                    561: separators.  Without an argument, C-K when there is text on the line to the
                    562: right of
                    563: the cursor kills that text; when there is no text after the cursor, C-K
                    564: deletes the line separator.
                    565: .LP
                    566: The fundamental way of specifying an argument is to use ESC followed
                    567: by the digits of the argument, for example, ESC 123 ESC G to go to line
                    568: 123. Negative arguments are allowed,
                    569: although not all of the commands know what to do with one.
                    570: .LP
                    571: Typing C-U means do the next command four times.
                    572: Two such C-U's multiply the next command by sixteen.
                    573: Thus,
                    574: C-U C-U C-F moves forward sixteen characters.
                    575: This is a good way to move forward quickly,
                    576: since it moves about 1/4 of a line on most terminals.
                    577: Other useful combinations are:
                    578: C-U C-U C-N (move down a good fraction of the screen),
                    579: C-U C-U C-O (make "a lot" of blank lines),
                    580: and C-U C-K (kill four lines \(em note that typing C-K four times
                    581: would kill 2 lines).
                    582: .LP
                    583: There are other,
                    584: terminal-dependent ways of specifying arguments.
                    585: They have the same effect but may be easier to type.
                    586: If your terminal
                    587: has a numeric keypad which sends something recognizably different from
                    588: the ordinary digits,
                    589: it is possible to program \s-2JOVE\s0 to to allow use of
                    590: the numeric keypad for specifying arguments.
                    591: .NH 2
                    592: The Mark and the Region
                    593: .XS \n(PN 5n
                    594: \*(SN The Mark and the Region
                    595: .XE
                    596: .LP
                    597: In general,
                    598: a command that processes an arbitrary part of the buffer
                    599: must know where to start and where to stop.
                    600: In \s-2JOVE\s0,
                    601: such commands usually operate on the text between point and \fIthe mark\fP.
                    602: This body of text is called \fIthe region\fP.
                    603: To specify a region,
                    604: you set point to one end of it and mark at the other.
                    605: It doesn't matter which one comes earlier in the text.
                    606: .IP "C-@" 15n
                    607: Set the mark where point is.
                    608: .IP "C-X C-X" 15n
                    609: Interchange mark and point.
                    610: .LP
                    611: For example,
                    612: if you wish to convert part of the buffer to all upper-case,
                    613: you can use the C-X C-U command,
                    614: which operates on the text in the region.
                    615: You can first go to the beginning of the text to be capitalized,
                    616: put the mark there, move to the end, and then type C-X C-U.
                    617: Or,
                    618: you can set the mark at the end of the text,
                    619: move to the beginning,
                    620: and then type C-X C-U.
                    621: C-X C-U runs the command \fIcase-region-upper\fP,
                    622: whose name signifies that the region,
                    623: or everything between point and mark,
                    624: is to be capitalized.
                    625: .LP
                    626: The way to set the mark is with the C-@ command or (on some
                    627: terminals) the C-Space command.
                    628: They set the mark where point is.
                    629: Then you can move point away,
                    630: leaving mark behind.  When the mark is set, "[Point pushed]" is printed on
                    631: the message line.
                    632: .LP
                    633: Since terminals have only one cursor,
                    634: there is no way for \s-2JOVE\s0 to show you where the mark is located.
                    635: You have to remember.
                    636: The usual solution to this problem is to set the mark and then use it soon,
                    637: before you forget where it is.
                    638: But you can see where the mark is with
                    639: the command C-X C-X which puts the mark where point was and point
                    640: where mark was.
                    641: The extent of the region is unchanged,
                    642: but the cursor and point are now at the previous location of the mark.
                    643: .NH 2
                    644: The Ring of Marks
                    645: .XS \n(PN 5n
                    646: \*(SN The Ring of Marks
                    647: .XE
                    648: .LP
                    649: Aside from delimiting the region,
                    650: the mark is also useful for remembering a spot that you may want to go back to.
                    651: To make this feature more useful,
                    652: \s-2JOVE\s0 remembers 16 previous locations of the mark.
                    653: Most commands that set the mark push the old mark onto this stack.
                    654: To return to a marked location, use C-U C-@.
                    655: This moves point to where the mark was,
                    656: and restores the mark from the stack of former marks.
                    657: So repeated use of this command moves point to all of the old
                    658: marks on the stack,
                    659: one by one.
                    660: Since the stack is actually a ring,
                    661: enough uses of C-U C-@ bring point back to where it was originally.
                    662: .LP
                    663: Some commands whose primary purpose is to move point a great distance
                    664: take advantage of the stack of marks to give you a way to undo the
                    665: command.
                    666: The best example is ESC <,
                    667: which moves to the beginning of the buffer.
                    668: If there are more than 22 lines between the beginning of
                    669: the buffer and point,
                    670: ESC < sets the mark first,
                    671: so that you can use C-U C-@ or C-X C-X to go back to where you were.
                    672: You can change the number of lines from 22 since it is kept in the variable \fImark-threshold\fP.
                    673: By setting it to 0,
                    674: you can make these commands always set the mark.
                    675: By setting it to a very large number you can prevent these commands from ever
                    676: setting the mark.
                    677: If a command decides to set the mark,
                    678: it prints the message \fI[Point pushed]\fP.
                    679: .NH 2
                    680: Killing and Moving Text
                    681: .XS \n(PN 5n
                    682: \*(SN Killing and Moving Text
                    683: .XE
                    684: .LP
                    685: The most common way of moving or copying text with \s-2JOVE\s0 is to kill it,
                    686: and get it back again in one or more places.
                    687: This is very safe
                    688: because the last several pieces of killed text are all remembered,
                    689: and it is versatile,
                    690: because the many commands for killing syntactic units
                    691: can also be used for moving those units.
                    692: There are also other ways of moving text for special purposes.
                    693: .NH 2
                    694: Deletion and Killing
                    695: .XS \n(PN 5n
                    696: \*(SN Deletion and Killing
                    697: .XE
                    698: .LP
                    699: Most commands which erase text from the buffer save it so that you can
                    700: get it back if you change your mind,
                    701: or move or copy it to other parts of the buffer.
                    702: These commands are known as \fIkill\fP commands.
                    703: The rest of the commands that erase text do not save it;
                    704: they are known as \fIdelete\fP commands.
                    705: The delete commands include C-D and Rubout,
                    706: which delete only one character at a time,
                    707: and those commands that delete only spaces or line separators.
                    708: Commands that can destroy significant amounts of nontrivial data generally kill.
                    709: A command's
                    710: name and description will use the words \fIkill\fP or \fIdelete\fP to
                    711: say which one it does.
                    712: .IP "C-D" 20n
                    713: Delete next character.
                    714: .IP "Rubout" 20n
                    715: Delete previous character.
                    716: .IP "ESC \e" 20n
                    717: Delete spaces and tabs around point.
                    718: .IP "C-X C-O" 20n
                    719: Delete blank lines around the current line.
                    720: .IP "C-K" 20n
                    721: Kill rest of line or one or more lines.
                    722: .IP "C-W" 20n
                    723: Kill region (from point to the mark).
                    724: .IP "ESC D" 20n
                    725: Kill word.
                    726: .IP "ESC Rubout" 20n
                    727: Kill word backwards.
                    728: .IP "ESC K" 20n
                    729: Kill to end of sentence.
                    730: .IP "C-X Rubout" 20n
                    731: Kill to beginning of sentence.
                    732: .NH 2
                    733: Deletion
                    734: .XS \n(PN 5n
                    735: \*(SN Deletion
                    736: .XE
                    737: .LP
                    738: The most basic delete commands are C-D and Rubout.
                    739: C-D deletes the character after the cursor,
                    740: the one the cursor is "on top of" or "underneath".
                    741: The cursor doesn't move.
                    742: Rubout deletes the character before the cursor,
                    743: and moves the cursor back.
                    744: Line separators act like normal characters when deleted.
                    745: Actually,
                    746: C-D and Rubout aren't always \fIdelete\fP commands;
                    747: if you give an argument,
                    748: they \fIkill\fP instead.
                    749: This prevents you from losing a great deal of text by typing a large
                    750: argument to a C-D or Rubout.
                    751: .LP
                    752: The other delete commands are those which delete only formatting
                    753: characters:
                    754: spaces,
                    755: tabs,
                    756: and line separators.
                    757: ESC \e (\fIdelete-white-space\fP)
                    758: deletes all the spaces and tab characters before and after point.
                    759: C-X C-O (\fIdelete-blank-lines\fP) deletes all blank lines after the current line,
                    760: and if the current line is blank deletes all the blank
                    761: lines preceding the current line as well
                    762: (leaving one blank line, the current line).
                    763: .NH 2
                    764: Killing by Lines
                    765: .XS \n(PN 5n
                    766: \*(SN Killing by Lines
                    767: .XE
                    768: .LP
                    769: The simplest kill command is the C-K command.
                    770: If issued at the beginning of a line,
                    771: it kills all the text on the line,
                    772: leaving it blank.
                    773: If given on a line containing only white space (blanks and tabs)
                    774: the line disappears.
                    775: As a consequence,
                    776: if you go to the front of a non-blank line and type two C-K's,
                    777: the line disappears completely.
                    778: .LP
                    779: More generally,
                    780: C-K kills from point up to the end of the line,
                    781: unless it is at the end of a line.
                    782: In that case,
                    783: it kills the line separator following the line,
                    784: thus merging the next line into the current one.
                    785: Invisible spaces and tabs at the end of the line are ignored when
                    786: deciding which case applies,
                    787: so if point appears to be at the end of the line,
                    788: you can be sure the line separator will be killed.
                    789: .LP
                    790: C-K with an argument of zero kills all the text before
                    791: point on the current line.
                    792: .NH 2
                    793: Other Kill Commands
                    794: .XS \n(PN 5n
                    795: \*(SN Other Kill Commands
                    796: .XE
                    797: .LP
                    798: A kill command which is very general is C-W (\fIkill-region\fP),
                    799: which kills everything between point and the mark.*
                    800: .FS
                    801: *Often users switch this binding from C-W to C-X C-K because it is too
                    802: easy to hit C-W accidentally.
                    803: .FE
                    804: With this command,
                    805: you can kill and save contiguous characters,
                    806: if you first set the mark at one end of them and go to the other end.
                    807: .LP
                    808: Other syntactic units can be killed, too;
                    809: words,
                    810: with ESC Rubout and ESC D;
                    811: and, sentences,
                    812: with ESC K and C-X Rubout.
                    813: .NH 2
                    814: Un-killing
                    815: .XS \n(PN 5n
                    816: \*(SN Un-killing (Yanking)
                    817: .XE
                    818: .LP
                    819: Un-killing (yanking) is getting back text which was killed.
                    820: The usual way to
                    821: move or copy text is to kill it and then un-kill it one or more times.
                    822: .IP "C-Y" 10n
                    823: Yank (re-insert) last killed text.
                    824: .IP "ESC Y" 10n
                    825: Replace re-inserted killed text with the previously killed text.
                    826: .IP "ESC W" 10n
                    827: Save region as last killed text without killing.
                    828: .LP
                    829: Killed text is pushed onto a \fIring buffer\fP called the \fIkill
                    830: ring\fP that remembers the last 10 blocks of text that were killed.
                    831: (Why it is called a ring buffer will be explained below).
                    832: The command C-Y (\fIyank\fP) reinserts the text of the most recent kill.
                    833: It leaves the cursor at the end of the text,
                    834: and puts the mark at the beginning.
                    835: Thus,
                    836: a single C-Y undoes the C-W.
                    837: .LP
                    838: If you wish to copy a block of text,
                    839: you might want to use ESC W (\fIcopy-region\fP),
                    840: which copies the region into the kill ring without removing it from the buffer.
                    841: This is approximately equivalent to C-W followed by C-Y,
                    842: except that ESC W does not mark the buffer as
                    843: "changed" and does not cause the screen to be rewritten.
                    844: .LP
                    845: There is only one kill ring shared among all the buffers.
                    846: After visiting a new file,
                    847: whatever was last killed in the previous file is still on top of the kill ring.
                    848: This is important for moving text between files.
                    849: .NH 2
                    850: Appending Kills
                    851: .XS \n(PN 5n
                    852: \*(SN Appending Kills
                    853: .XE
                    854: .LP
                    855: Normally,
                    856: each kill command pushes a new block onto the kill ring.
                    857: However,
                    858: two or more kill commands immediately in a row (without any other
                    859: intervening commands) combine their text into a
                    860: single entry on the ring,
                    861: so that a single C-Y command gets it all back as it was before it was killed.
                    862: This means that you don't have to kill all the text in one command;
                    863: you can keep killing line after line,
                    864: or word after word,
                    865: until you have killed it all,
                    866: and you can still get it all back at once.
                    867: .LP
                    868: Commands that kill forward from 
                    869: .I point 
                    870: add onto the end of the previous
                    871: killed text.
                    872: Commands that kill backward from 
                    873: .I point
                    874: add onto the beginning.
                    875: This way,
                    876: any sequence of mixed forward and backward kill
                    877: commands puts all the killed text into one entry without needing rearrangement.
                    878: .NH 2
                    879: Un-killing Earlier Kills
                    880: .XS \n(PN 5n
                    881: \*(SN Un-killing Earlier Kills
                    882: .XE
                    883: .LP
                    884: To recover killed text that is no longer the most recent kill,
                    885: you need the ESC Y (\fIyank-pop\fP) command.
                    886: The ESC Y command can be used
                    887: only after a C-Y (yank) command or another ESC Y.
                    888: It takes the un-killed
                    889: text inserted by the C-Y and replaces it with the text from an earlier
                    890: kill.
                    891: So,
                    892: to recover the text of the next-to-the-last kill,
                    893: you first use C-Y to recover the last kill,
                    894: and then discard it by use of ESC Y to move back to the previous kill.
                    895: .LP
                    896: You can think of all the last few kills as living on a ring.
                    897: After a C-Y command,
                    898: the text at the front of the ring is also present in the buffer.
                    899: ESC Y "rotates" the ring bringing the previous string of text to the front
                    900: and this text replaces the other text in the buffer as well.
                    901: Enough ESC Y commands can rotate any part of the ring to the front,
                    902: so you can get at any killed text so long as it is recent enough
                    903: to be still in the ring.
                    904: Eventually the ring rotates all the way
                    905: around and the most recently killed text comes to the front
                    906: (and into the buffer) again.
                    907: ESC Y with a negative argument rotates the ring backwards.
                    908: .LP
                    909: When the text you are looking for is brought into the buffer,
                    910: you can stop doing ESC Y's and the text will stay there.
                    911: It's really just a copy of what's at the front of the ring,
                    912: so editing it does not change what's in the ring.
                    913: And the ring,
                    914: once rotated,
                    915: stays rotated,
                    916: so that doing another C-Y gets another copy of what you rotated to the
                    917: front with ESC Y.
                    918: .LP
                    919: If you change your
                    920: mind about un-killing,
                    921: C-W gets rid of the un-killed text, even
                    922: after any number of ESC Y's.
                    923: .NH 1
                    924: Searching
                    925: .XS \n(PN
                    926: \*(SN Searching
                    927: .XE
                    928: .LP
                    929: The search commands are useful for finding and moving to arbitrary
                    930: positions in the buffer in one swift motion.
                    931: For example,
                    932: if you just ran the spell program on a paper
                    933: and you want to correct some word,
                    934: you can use the search commands to move directly to that word.  There are
                    935: two flavors of search: \fIstring search\fP and \fIincremental search\fP.
                    936: The former is the default flavor\(emif you want to use incremental search
                    937: you must rearrange the key bindings (see below).
                    938: .NH 2
                    939: Conventional Search
                    940: .XS \n(PN 5n
                    941: \*(SN Conventional Search
                    942: .XE
                    943: .LP
                    944: .IP "C-S" 15n
                    945: Search forward.
                    946: .IP "C-R" 15n
                    947: Search backward.
                    948: .LP
                    949: To search for the string "FOO" you type "C-S FOO<return>".
                    950: If \s-2JOVE\s0 finds
                    951: FOO it moves point to the end of it; otherwise \s-2JOVE\s0 prints an error
                    952: message and leaves point unchanged.
                    953: C-S searches forward from point
                    954: so only occurrences of FOO after point are found.
                    955: To search in the other direction use C-R.
                    956: It is exactly the same as C-S except it searches in the opposite direction,
                    957: and if it finds the string,
                    958: it leaves point at the beginning of it,
                    959: not at the end as in C-S.
                    960: .LP
                    961: While \s-2JOVE\s0 is searching it prints the search string on the message line.
                    962: This is so you know what \s-2JOVE\s0 is doing.
                    963: When the system is heavily loaded and
                    964: editing in exceptionally large buffers,
                    965: searches can take several (sometimes many) seconds.
                    966: .LP
                    967: \s-2JOVE\s0 remembers the last search string you used,
                    968: so if you want to search for the same string you can type "C-S <return>".
                    969: If you mistyped the last search string,
                    970: you can type C-S followed by C-R.
                    971: C-R,
                    972: as usual,
                    973: inserts the default search string into the minibuffer,
                    974: and then you can fix it up.
                    975: .NH 2
                    976: Incremental Search
                    977: .XS \n(PN 5n
                    978: \*(SN Incremental Search
                    979: .XE
                    980: .LP
                    981: This search command is unusual in that is is \fIincremental\fP;
                    982: it begins to search before you have typed the complete search string.
                    983: As you type in the search string,
                    984: \s-2JOVE\s0 shows you where it would be found.
                    985: When you have typed enough characters to identify the place you want,
                    986: you can stop.
                    987: Depending on what you will do next,
                    988: you may or may not need to terminate the search explicitly with a Return first.
                    989: .LP
                    990: The command to search is C-S (\fIi-search-forward\fP).
                    991: C-S reads in characters and positions the cursor at the first
                    992: occurrence of the characters that you have typed so far.
                    993: If you type C-S and then F,
                    994: the cursor moves in the text just after the next "F".
                    995: Type an "O",
                    996: and see the cursor move to after the next "FO".
                    997: After another "O",
                    998: the cursor is after the next "FOO".
                    999: At the same time,
                   1000: the "FOO" has echoed on the message line.
                   1001: .LP
                   1002: If you type a mistaken character,
                   1003: you can rub it out.
                   1004: After the FOO,
                   1005: typing a Rubout makes the "O" disappear from the message line,
                   1006: leaving only "FO".
                   1007: The cursor moves back in the buffer to the "FO".
                   1008: Rubbing out the "O" and "F" moves the cursor back to where you
                   1009: started the search.
                   1010: .LP
                   1011: When you are satisfied with the place you have reached,
                   1012: you can type a Return,
                   1013: which stops searching,
                   1014: leaving the cursor where the search brought it.
                   1015: Also,
                   1016: any command not specially meaningful in searches stops
                   1017: the searching and is then executed.
                   1018: Thus,
                   1019: typing C-A would exit the search and then move to the beginning of the line.
                   1020: Return is necessary only if the next character you want to type is a printing
                   1021: character,
                   1022: Rubout,
                   1023: Return,
                   1024: or another search command,
                   1025: since those are the characters that have special meanings inside the search.
                   1026: .LP
                   1027: Sometimes you search for "FOO" and find it,
                   1028: but not the one you hoped to find.
                   1029: Perhaps there is a second FOO that you forgot about,
                   1030: after the one you just found.
                   1031: Then type another C-S and the cursor will find the next FOO.
                   1032: This can be done any number of times.
                   1033: If you overshoot,
                   1034: you can return to previous finds by rubbing out the C-S's.
                   1035: .LP
                   1036: After you exit a search,
                   1037: you can search for the same string again by typing just C-S C-S:
                   1038: one C-S command to start the search and then
                   1039: another C-S to mean "search again for the same string".
                   1040: .LP
                   1041: If your string is not found at all,
                   1042: the message line says "Failing I-search".
                   1043: The cursor is after the place where \s-2JOVE\s0 found as much of
                   1044: your string as it could.
                   1045: Thus,
                   1046: if you search for FOOT and there is no FOOT,
                   1047: you might see the cursor after the FOO in FOOL.
                   1048: At this point there are several things you can do.
                   1049: If your string was mistyped,
                   1050: you can rub some of it out and correct it.
                   1051: If you like the place you have found,
                   1052: you can type Return or some other \s-2JOVE\s0 command
                   1053: to "accept what the search offered".
                   1054: Or you can type C-G,
                   1055: which undoes the search altogether and positions you back where you started
                   1056: the search.
                   1057: .LP
                   1058: You can also type C-R at any time to start searching backwards.
                   1059: If a search fails because the place you started was too late in the file,
                   1060: you should do this.
                   1061: Repeated C-R's keep looking backward for more occurrences of the last search string.
                   1062: A C-S starts going forward again.
                   1063: C-R's can be rubbed out just like anything else.
                   1064: .NH 2
                   1065: Searching with Regular Expressions
                   1066: .XS \n(PN 5n
                   1067: \*(SN Searching with Regular Expressions
                   1068: .XE
                   1069: .LP
                   1070: In addition to the searching facilities described above,
                   1071: \s-2JOVE\s0
                   1072: can search for patterns using regular expressions.
                   1073: The handling of regular expressions in \s-2JOVE\s0 is like that of \fIed(1)\fP
                   1074: or \fIvi(1)\fP, but with some notable additions.
                   1075: The extra metacharacters understood by \s-2JOVE\s0 are \e<,
                   1076: \e>,
                   1077: \e\|| and \e\|{.
                   1078: The first two of these match the beginnings and endings of words;
                   1079: Thus the search pattern,
                   1080: "\|\e<Exec" would match all words beginning with the letters "Exec".
                   1081: .LP
                   1082: An \e\|| signals the beginning of an alternative \(em that is, the
                   1083: pattern "foo\e\||bar" would match either "foo" or "bar".  The "curly
                   1084: brace" is a way of introducing several sub-alternatives into a pattern.
                   1085: It parallels the [] construct of regular expressions, except it specifies
                   1086: a list of alternative words instead of just alternative characters.  So
                   1087: the pattern "foo\e\|{bar,baz\e\|}bie" matches "foobarbie" or "foobazbie".
                   1088: .LP
                   1089: \s-2JOVE\s0 only regards metacharacters as special if the variable
                   1090: \fImatch-regular-expressions\fP is set to "on".
                   1091: The ability to have \s-2JOVE\s0 ignore these characters is useful if
                   1092: you're editing a document about patterns and regular expressions or
                   1093: when a novice is learning \s-2JOVE\s0.
                   1094: .LP
                   1095: Another variable that affects searching is \fIcase-ignore-search\fP.  If
                   1096: this variable is set to "on" then upper case and lower case letters are
                   1097: considered equal.
                   1098: .NH 1
                   1099: Replacement Commands
                   1100: .XS \n(PN
                   1101: \*(SN Replacement Commands
                   1102: .XE
                   1103: .LP
                   1104: Global search-and-replace operations are not needed as often in \s-2JOVE\s0
                   1105: as they are in other editors,
                   1106: but they are available.
                   1107: In addition to
                   1108: the simple Replace operation which is like that found in most editors,
                   1109: there is a Query Replace operation which asks,
                   1110: for each occurrence of the pattern,
                   1111: whether to replace it.
                   1112: .NH 2
                   1113: Global replacement
                   1114: .XS \n(PN 5n
                   1115: \*(SN Global Replacement
                   1116: .XE
                   1117: .LP
                   1118: To replace every occurrence of FOO after point with BAR,
                   1119: you can do, e.g., "ESC R FOO<return>BAR" as the \fIreplace-string\fP command
                   1120: is bound to the ESC R.
                   1121: Replacement takes place only between point and the end of the buffer
                   1122: so if you want to cover the whole buffer you must go to the beginning first.
                   1123: .NH 2
                   1124: Query Replace
                   1125: .XS \n(PN 5n
                   1126: \*(SN Query Replace
                   1127: .XE
                   1128: .LP
                   1129: If you want to change only some of the occurrences of FOO,
                   1130: not all,
                   1131: then the global \fIreplace-string\fP is inappropriate;
                   1132: Instead,
                   1133: use, e.g., "ESC Q FOO<return>BAR", to run the command \fIquery-replace-string\fP.
                   1134: This displays each occurrence of FOO and waits for you to say whether
                   1135: to replace it with a BAR.
                   1136: The things you can type when you are shown an occurrence of FOO are:
                   1137: .IP "Space" 15n
                   1138: to replace the FOO.
                   1139: .IP "Rubout" 15n
                   1140: to skip to the next FOO without replacing this one.
                   1141: .IP "Return" 15n
                   1142: to stop without doing any more replacements.
                   1143: .IP "Period" 15n
                   1144: to replace this FOO and then stop.
                   1145: .IP "! or P" 15n
                   1146: to replace all remaining FOO's without asking.
                   1147: .IP "C-R or R" 15n
                   1148: to enter a recursive editing level,
                   1149: in case the FOO needs to be edited rather than just replaced with a BAR.
                   1150: When you are done,
                   1151: exit the recursive editing level with C-X C-C and the next FOO will
                   1152: be displayed.
                   1153: .IP "C-W" 15n
                   1154: to delete the FOO, and then start editing the buffer.
                   1155: When you are finished editing whatever is to replace the FOO,
                   1156: exit the recursive editing level with C-X C-C
                   1157: and the next FOO will be displayed.
                   1158: .IP "U" 15n
                   1159: move to the last replacement and undo it.
                   1160: .LP
                   1161: Another alternative is using \fIreplace-in-region\fP which is just like
                   1162: \fIreplace-string\fP except it searches only within the region.
                   1163: .LP

unix.superglobalmegacorp.com

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