Use `hanyu-dazidian' instead of `hanyu-dazidian-vol',
[chise/xemacs-chise.git] / info / xemacs.info-6
index 7aad804..e6c1b6f 100644 (file)
@@ -1,4 +1,4 @@
-This is ../info/xemacs.info, produced by makeinfo version 4.0 from
+This is ../info/xemacs.info, produced by makeinfo version 4.0b from
 xemacs/xemacs.texi.
 
 INFO-DIR-SECTION XEmacs Editor
@@ -30,6 +30,409 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
+File: xemacs.info,  Node: Rectangles,  Next: Registers,  Prev: Accumulating Text,  Up: Top
+
+Rectangles
+==========
+
+   The rectangle commands affect rectangular areas of text: all
+characters between a certain pair of columns, in a certain range of
+lines.  Commands are provided to kill rectangles, yank killed
+rectangles, clear them out, or delete them.  Rectangle commands are
+useful with text in multicolumnar formats, like code with comments at
+the right, or for changing text into or out of such formats.
+
+   To specify the rectangle a command should work on, put the mark at
+one corner and point at the opposite corner.  The specified rectangle is
+called the "region-rectangle" because it is controlled about the same
+way the region is controlled.  Remember that a given combination of
+point and mark values can be interpreted either as specifying a region
+or as specifying a rectangle; it is up to the command that uses them to
+choose the interpretation.
+
+`M-x delete-rectangle'
+     Delete the text of the region-rectangle, moving any following text
+     on each line leftward to the left edge of the region-rectangle.
+
+`M-x kill-rectangle'
+     Similar, but also save the contents of the region-rectangle as the
+     "last killed rectangle".
+
+`M-x yank-rectangle'
+     Yank the last killed rectangle with its upper left corner at point.
+
+`M-x open-rectangle'
+     Insert blank space to fill the space of the region-rectangle.  The
+     previous contents of the region-rectangle are pushed rightward.
+
+`M-x clear-rectangle'
+     Clear the region-rectangle by replacing its contents with spaces.
+
+   The rectangle operations fall into two classes: commands deleting and
+moving rectangles, and commands for blank rectangles.
+
+   There are two ways to get rid of the text in a rectangle: you can
+discard the text (delete it) or save it as the "last killed" rectangle.
+The commands for these two ways are `M-x delete-rectangle' and `M-x
+kill-rectangle'.  In either case, the portion of each line that falls
+inside the rectangle's boundaries is deleted, causing following text
+(if any) on the line to move left.
+
+   Note that "killing" a rectangle is not killing in the usual sense;
+the rectangle is not stored in the kill ring, but in a special place
+that only records the most recently killed rectangle (that is, does not
+append to a killed rectangle).  Different yank commands have to be used
+and only one rectangle is stored, because yanking a rectangle is quite
+different from yanking linear text and yank-popping commands are
+difficult to make sense of.
+
+   Inserting a rectangle is the opposite of deleting one.  You specify
+where to put the upper left corner by putting point there.  The
+rectangle's first line is inserted at point, the rectangle's second line
+is inserted at a point one line vertically down, and so on.  The number
+of lines affected is determined by the height of the saved rectangle.
+
+   To insert the last killed rectangle, type `M-x yank-rectangle'.
+This can be used to convert single-column lists into double-column
+lists; kill the second half of the list as a rectangle and then yank it
+beside the first line of the list.
+
+   There are two commands for working with blank rectangles: `M-x
+clear-rectangle' erases existing text, and `M-x open-rectangle' inserts
+a blank rectangle.  Clearing a rectangle is equivalent to deleting it
+and then inserting a blank rectangle of the same size.
+
+   Rectangles can also be copied into and out of registers.  *Note
+Rectangle Registers: RegRect.
+
+\1f
+File: xemacs.info,  Node: Registers,  Next: Display,  Prev: Rectangles,  Up: Top
+
+Registers
+*********
+
+   XEmacs "registers" are places in which you can save text or
+positions for later use.  Once you save text or a rectangle in a
+register, you can copy it into the buffer once or many times; a position
+saved in a register is used by moving point to that position.
+Rectangles can also be copied into and out of registers (*note
+Rectangles::).
+
+   Each register has a name which is a single character.  A register can
+store a piece of text, a rectangle, a position, a window configuration,
+or a file name, but only one thing at any given time.  Whatever you
+store in a register remains there until you store something else in that
+register.  To see what a register R contains, use `M-x view-register'.
+
+`M-x view-register <RET> R'
+     Display a description of what register R contains.
+
+   `M-x view-register' reads a register name as an argument and then
+displays the contents of the specified register.
+
+* Menu:
+
+* Position: RegPos.           Saving positions in registers.
+* Text: RegText.              Saving text in registers.
+* Rectangle: RegRect.         Saving rectangles in registers.
+* Configurations: RegConfig.  Saving window configurations in registers.
+* Files: RegFiles.            File names in registers.
+* Numbers: RegNumbers.        Numbers in registers.
+* Bookmarks::                 Bookmarks are like registers, but persistent.
+
+\1f
+File: xemacs.info,  Node: RegPos,  Next: RegText,  Prev: Registers,  Up: Registers
+
+Saving Positions in Registers
+=============================
+
+   Saving a position records a place in a buffer so that you can move
+back there later.  Moving to a saved position switches to that buffer
+and moves point to that place in it.
+
+`C-x r <SPC> R'
+     Save position of point in register R (`point-to-register').
+
+`C-x r j R'
+     Jump to the position saved in register R (`jump-to-register').
+
+   To save the current position of point in a register, choose a name R
+and type `C-x r <SPC> R'.  The register R retains the position thus
+saved until you store something else in that register.
+
+   The command `C-x r j R' moves point to the position recorded in
+register R.  The register is not affected; it continues to record the
+same location.  You can jump to the same position using the same
+register as often as you want.
+
+   If you use `C-x r j' to go to a saved position, but the buffer it
+was saved from has been killed, `C-x r j' tries to create the buffer
+again by visiting the same file.  Of course, this works only for buffers
+that were visiting files.
+
+\1f
+File: xemacs.info,  Node: RegText,  Next: RegRect,  Prev: RegPos,  Up: Registers
+
+Saving Text in Registers
+========================
+
+   When you want to insert a copy of the same piece of text many times,
+it can be impractical to use the kill ring, since each subsequent kill
+moves the piece of text further down on the ring.  It becomes hard to
+keep track of the argument needed to retrieve the same text with `C-y'.
+An alternative is to store the text in a register with `C-x r s'
+(`copy-to-register') and then retrieve it with `C-x r i'
+(`insert-register').
+
+`C-x r s R'
+     Copy region into register R (`copy-to-register').
+
+`C-x r g R'
+`C-x r i R'
+     Insert text contents of register R (`insert-register').
+
+   `C-x r s R' stores a copy of the text of the region into the
+register named R.  Given a numeric argument, `C-x r s R' deletes the
+text from the buffer as well.
+
+   `C-x r i R' inserts the text from register R in the buffer.  By
+default it leaves point before the text and places the mark after it.
+With a numeric argument (`C-u'), it puts point after the text and the
+mark before it.
+
+\1f
+File: xemacs.info,  Node: RegRect,  Next: RegConfig,  Prev: RegText,  Up: Registers
+
+Saving Rectangles in Registers
+==============================
+
+   A register can contain a rectangle instead of lines of text.  The
+rectangle is represented as a list of strings.  *Note Rectangles::, for
+basic information on rectangles and how to specify rectangles in a
+buffer.
+
+`C-x r r R'
+     Copy the region-rectangle into register R
+     (`copy-rectangle-to-register').  With a numeric argument, delete it
+     as well.
+
+`C-x r g R'
+`C-x r i R'
+     Insert the rectangle stored in register R (if it contains a
+     rectangle) (`insert-register').
+
+   The `C-x r i R' command inserts linear text if the register
+contains that, or inserts a rectangle if the register contains one.
+
+   See also the command `sort-columns', which you can think of as
+sorting a rectangle.  *Note Sorting::.
+
+\1f
+File: xemacs.info,  Node: RegConfig,  Next: RegNumbers,  Prev: RegRect,  Up: Registers
+
+Saving Window Configurations in Registers
+=========================================
+
+   You can save the window configuration of the selected frame in a
+register, or even the configuration of all windows in all frames, and
+restore the configuration later.
+
+`C-x r w R'
+     Save the state of the selected frame's windows in register R
+     (`window-configuration-to-register').
+
+`M-x frame-configuration-to-register <RET> R'
+     Save the state of all frames, including all their windows, in
+     register R (`frame-configuration-to-register').
+
+   Use `C-x r j R' to restore a window or frame configuration.  This is
+the same command used to restore a cursor position.  When you restore a
+frame configuration, any existing frames not included in the
+configuration become invisible.  If you wish to delete these frames
+instead, use `C-u C-x r j R'.
+
+\1f
+File: xemacs.info,  Node: RegNumbers,  Next: RegFiles,  Prev: RegConfig,  Up: Registers
+
+Keeping Numbers in Registers
+============================
+
+   There are commands to store a number in a register, to insert the
+number in the buffer in decimal, and to increment it.  These commands
+can be useful in keyboard macros (*note Keyboard Macros::).
+
+`C-u NUMBER C-x r n REG'
+     Store NUMBER into register REG (`number-to-register').
+
+`C-u NUMBER C-x r + REG'
+     Increment the number in register REG by NUMBER
+     (`increment-register').
+
+`C-x r g REG'
+     Insert the number from register REG into the buffer.
+
+   `C-x r g' is the same command used to insert any other sort of
+register contents into the buffer.
+
+\1f
+File: xemacs.info,  Node: RegFiles,  Next: Bookmarks,  Prev: RegNumbers,  Up: Registers
+
+Keeping File Names in Registers
+===============================
+
+   If you visit certain file names frequently, you can visit them more
+conveniently if you put their names in registers.  Here's the Lisp code
+used to put a file name in a register:
+
+     (set-register ?R '(file . NAME))
+
+For example,
+
+     (set-register ?z '(file . "/usr/src/xemacs/src/ChangeLog"))
+
+puts the file name shown in register `z'.
+
+   To visit the file whose name is in register R, type `C-x r j R'.
+(This is the same command used to jump to a position or restore a frame
+configuration.)
+
+\1f
+File: xemacs.info,  Node: Bookmarks,  Prev: RegFiles,  Up: Registers
+
+Bookmarks
+=========
+
+   "Bookmarks" are somewhat like registers in that they record
+positions you can jump to.  Unlike registers, they have long names, and
+they persist automatically from one Emacs session to the next.  The
+prototypical use of bookmarks is to record "where you were reading" in
+various files.
+
+   Note: bookmark.el is distributed in edit-utils package.  You need to
+install that to use bookmark facility (*note Packages::).
+
+`C-x r m <RET>'
+     Set the bookmark for the visited file, at point.
+
+`C-x r m BOOKMARK <RET>'
+     Set the bookmark named BOOKMARK at point (`bookmark-set').
+
+`C-x r b BOOKMARK <RET>'
+     Jump to the bookmark named BOOKMARK (`bookmark-jump').
+
+`C-x r l'
+     List all bookmarks (`list-bookmarks').
+
+`M-x bookmark-save'
+     Save all the current bookmark values in the default bookmark file.
+
+   The prototypical use for bookmarks is to record one current position
+in each of several files.  So the command `C-x r m', which sets a
+bookmark, uses the visited file name as the default for the bookmark
+name.  If you name each bookmark after the file it points to, then you
+can conveniently revisit any of those files with `C-x r b', and move to
+the position of the bookmark at the same time.
+
+   To display a list of all your bookmarks in a separate buffer, type
+`C-x r l' (`list-bookmarks').  If you switch to that buffer, you can
+use it to edit your bookmark definitions or annotate the bookmarks.
+Type `C-h m' in that buffer for more information about its special
+editing commands.
+
+   When you kill XEmacs, XEmacs offers to save your bookmark values in
+your default bookmark file, `~/.emacs.bmk', if you have changed any
+bookmark values.  You can also save the bookmarks at any time with the
+`M-x bookmark-save' command.  The bookmark commands load your default
+bookmark file automatically.  This saving and loading is how bookmarks
+persist from one XEmacs session to the next.
+
+   If you set the variable `bookmark-save-flag' to 1, then each command
+that sets a bookmark will also save your bookmarks; this way, you don't
+lose any bookmark values even if XEmacs crashes.  (The value, if a
+number, says how many bookmark modifications should go by between
+saving.)
+
+   Bookmark position values are saved with surrounding context, so that
+`bookmark-jump' can find the proper position even if the file is
+modified slightly.  The variable `bookmark-search-size' says how many
+characters of context to record, on each side of the bookmark's
+position.
+
+   Here are some additional commands for working with bookmarks:
+
+`M-x bookmark-load <RET> FILENAME <RET>'
+     Load a file named FILENAME that contains a list of bookmark
+     values.  You can use this command, as well as `bookmark-write', to
+     work with other files of bookmark values in addition to your
+     default bookmark file.
+
+`M-x bookmark-write <RET> FILENAME <RET>'
+     Save all the current bookmark values in the file FILENAME.
+
+`M-x bookmark-delete <RET> BOOKMARK <RET>'
+     Delete the bookmark named BOOKMARK.
+
+`M-x bookmark-insert-location <RET> BOOKMARK <RET>'
+     Insert in the buffer the name of the file that bookmark BOOKMARK
+     points to.
+
+`M-x bookmark-insert <RET> BOOKMARK <RET>'
+     Insert in the buffer the _contents_ of the file that bookmark
+     BOOKMARK points to.
+
+\1f
+File: xemacs.info,  Node: Display,  Next: Search,  Prev: Registers,  Up: Top
+
+Controlling the Display
+***********************
+
+   Since only part of a large buffer fits in the window, XEmacs tries
+to show the part that is likely to be interesting.  The display control
+commands allow you to specify which part of the text you want to see.
+
+`C-l'
+     Clear frame and redisplay, scrolling the selected window to center
+     point vertically within it (`recenter').
+
+`C-v'
+`pgdn'
+`next'
+     Scroll forward (a windowful or a specified number of lines)
+     (`scroll-up').  On most X keyboards, you can get this
+     functionality using the key labelled `Page Down', which generates
+     either `next' or `pgdn'.
+
+`M-v'
+`pgup'
+`prior'
+     Scroll backward (`scroll-down').  On most X keyboards, you can get
+     this functionality using the key labelled `Page Up', which
+     generates either `prior' or `pgup'.
+
+`ARG C-l'
+     Scroll so point is on line ARG (`recenter').
+
+`C-x <'
+`C-pgdn'
+`C-next'
+     Scroll text in current window to the left (`scroll-left').
+
+`C-x >'
+`C-pgup'
+`C-prior'
+     Scroll to the right (`scroll-right').
+
+`C-x $'
+     Make deeply indented lines invisible (`set-selective-display').
+
+* Menu:
+
+* Scrolling::             Moving text up and down in a window.
+* Horizontal Scrolling::   Moving text left and right in a window.
+* Selective Display::      Hiding lines with lots of indentation.
+* Display Vars::           Information on variables for customizing display.
+
+\1f
 File: xemacs.info,  Node: Scrolling,  Next: Horizontal Scrolling,  Prev: Display,  Up: Display
 
 Scrolling
@@ -582,612 +985,3 @@ regexp and non-regexp searches have independent defaults.
 way of incremental regexp search with `M-C-s <RET>'; similarly for
 `re-search-backward' with `M-C-r <RET>'.
 
-\1f
-File: xemacs.info,  Node: Regexps,  Next: Search Case,  Prev: Regexp Search,  Up: Search
-
-Syntax of Regular Expressions
-=============================
-
-   Regular expressions have a syntax in which a few characters are
-special constructs and the rest are "ordinary".  An ordinary character
-is a simple regular expression that matches that character and nothing
-else.  The special characters are `.', `*', `+', `?', `[', `]', `^',
-`$', and `\'; no new special characters will be defined in the future.
-Any other character appearing in a regular expression is ordinary,
-unless a `\' precedes it.
-
-   For example, `f' is not a special character, so it is ordinary, and
-therefore `f' is a regular expression that matches the string `f' and
-no other string.  (It does _not_ match the string `ff'.)  Likewise, `o'
-is a regular expression that matches only `o'.
-
-   Any two regular expressions A and B can be concatenated.  The result
-is a regular expression that matches a string if A matches some amount
-of the beginning of that string and B matches the rest of the string.
-
-   As a simple example, we can concatenate the regular expressions `f'
-and `o' to get the regular expression `fo', which matches only the
-string `fo'.  Still trivial.  To do something more powerful, you need
-to use one of the special characters.  Here is a list of them:
-
-`. (Period)'
-     is a special character that matches any single character except a
-     newline.  Using concatenation, we can make regular expressions
-     like `a.b', which matches any three-character string that begins
-     with `a' and ends with `b'.
-
-`*'
-     is not a construct by itself; it is a quantifying suffix operator
-     that means to repeat the preceding regular expression as many
-     times as possible.  In `fo*', the `*' applies to the `o', so `fo*'
-     matches one `f' followed by any number of `o's.  The case of zero
-     `o's is allowed: `fo*' does match `f'.
-
-     `*' always applies to the _smallest_ possible preceding
-     expression.  Thus, `fo*' has a repeating `o', not a repeating `fo'.
-
-     The matcher processes a `*' construct by matching, immediately, as
-     many repetitions as can be found; it is "greedy".  Then it
-     continues with the rest of the pattern.  If that fails,
-     backtracking occurs, discarding some of the matches of the
-     `*'-modified construct in case that makes it possible to match the
-     rest of the pattern.  For example, in matching `ca*ar' against the
-     string `caaar', the `a*' first tries to match all three `a's; but
-     the rest of the pattern is `ar' and there is only `r' left to
-     match, so this try fails.  The next alternative is for `a*' to
-     match only two `a's.  With this choice, the rest of the regexp
-     matches successfully.
-
-     Nested repetition operators can be extremely slow if they specify
-     backtracking loops.  For example, it could take hours for the
-     regular expression `\(x+y*\)*a' to match the sequence
-     `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz'.  The slowness is because
-     Emacs must try each imaginable way of grouping the 35 `x''s before
-     concluding that none of them can work.  To make sure your regular
-     expressions run fast, check nested repetitions carefully.
-
-`+'
-     is a quantifying suffix operator similar to `*' except that the
-     preceding expression must match at least once.  It is also
-     "greedy".  So, for example, `ca+r' matches the strings `car' and
-     `caaaar' but not the string `cr', whereas `ca*r' matches all three
-     strings.
-
-`?'
-     is a quantifying suffix operator similar to `*', except that the
-     preceding expression can match either once or not at all.  For
-     example, `ca?r' matches `car' or `cr', but does not match anything
-     else.
-
-`*?'
-     works just like `*', except that rather than matching the longest
-     match, it matches the shortest match.  `*?' is known as a
-     "non-greedy" quantifier, a regexp construct borrowed from Perl.
-
-     This construct is very useful for when you want to match the text
-     inside a pair of delimiters.  For instance, `/\*.*?\*/' will match
-     C comments in a string.  This could not easily be achieved without
-     the use of a non-greedy quantifier.
-
-     This construct has not been available prior to XEmacs 20.4.  It is
-     not available in FSF Emacs.
-
-`+?'
-     is the non-greedy version of `+'.
-
-`??'
-     is the non-greedy version of `?'.
-
-`\{n,m\}'
-     serves as an interval quantifier, analogous to `*' or `+', but
-     specifies that the expression must match at least N times, but no
-     more than M times.  This syntax is supported by most Unix regexp
-     utilities, and has been introduced to XEmacs for the version 20.3.
-
-     Unfortunately, the non-greedy version of this quantifier does not
-     exist currently, although it does in Perl.
-
-`[ ... ]'
-     `[' begins a "character set", which is terminated by a `]'.  In
-     the simplest case, the characters between the two brackets form
-     the set.  Thus, `[ad]' matches either one `a' or one `d', and
-     `[ad]*' matches any string composed of just `a's and `d's
-     (including the empty string), from which it follows that `c[ad]*r'
-     matches `cr', `car', `cdr', `caddaar', etc.
-
-     The usual regular expression special characters are not special
-     inside a character set.  A completely different set of special
-     characters exists inside character sets: `]', `-' and `^'.
-
-     `-' is used for ranges of characters.  To write a range, write two
-     characters with a `-' between them.  Thus, `[a-z]' matches any
-     lower case letter.  Ranges may be intermixed freely with individual
-     characters, as in `[a-z$%.]', which matches any lower case letter
-     or `$', `%', or a period.
-
-     To include a `]' in a character set, make it the first character.
-     For example, `[]a]' matches `]' or `a'.  To include a `-', write
-     `-' as the first character in the set, or put it immediately after
-     a range.  (You can replace one individual character C with the
-     range `C-C' to make a place to put the `-'.)  There is no way to
-     write a set containing just `-' and `]'.
-
-     To include `^' in a set, put it anywhere but at the beginning of
-     the set.
-
-`[^ ... ]'
-     `[^' begins a "complement character set", which matches any
-     character except the ones specified.  Thus, `[^a-z0-9A-Z]' matches
-     all characters _except_ letters and digits.
-
-     `^' is not special in a character set unless it is the first
-     character.  The character following the `^' is treated as if it
-     were first (thus, `-' and `]' are not special there).
-
-     Note that a complement character set can match a newline, unless
-     newline is mentioned as one of the characters not to match.
-
-`^'
-     is a special character that matches the empty string, but only at
-     the beginning of a line in the text being matched.  Otherwise it
-     fails to match anything.  Thus, `^foo' matches a `foo' that occurs
-     at the beginning of a line.
-
-     When matching a string instead of a buffer, `^' matches at the
-     beginning of the string or after a newline character `\n'.
-
-`$'
-     is similar to `^' but matches only at the end of a line.  Thus,
-     `x+$' matches a string of one `x' or more at the end of a line.
-
-     When matching a string instead of a buffer, `$' matches at the end
-     of the string or before a newline character `\n'.
-
-`\'
-     has two functions: it quotes the special characters (including
-     `\'), and it introduces additional special constructs.
-
-     Because `\' quotes special characters, `\$' is a regular
-     expression that matches only `$', and `\[' is a regular expression
-     that matches only `[', and so on.
-
-   *Please note:* For historical compatibility, special characters are
-treated as ordinary ones if they are in contexts where their special
-meanings make no sense.  For example, `*foo' treats `*' as ordinary
-since there is no preceding expression on which the `*' can act.  It is
-poor practice to depend on this behavior; quote the special character
-anyway, regardless of where it appears.
-
-   For the most part, `\' followed by any character matches only that
-character.  However, there are several exceptions: characters that,
-when preceded by `\', are special constructs.  Such characters are
-always ordinary when encountered on their own.  Here is a table of `\'
-constructs:
-
-`\|'
-     specifies an alternative.  Two regular expressions A and B with
-     `\|' in between form an expression that matches anything that
-     either A or B matches.
-
-     Thus, `foo\|bar' matches either `foo' or `bar' but no other string.
-
-     `\|' applies to the largest possible surrounding expressions.
-     Only a surrounding `\( ... \)' grouping can limit the grouping
-     power of `\|'.
-
-     Full backtracking capability exists to handle multiple uses of
-     `\|'.
-
-`\( ... \)'
-     is a grouping construct that serves three purposes:
-
-       1. To enclose a set of `\|' alternatives for other operations.
-          Thus, `\(foo\|bar\)x' matches either `foox' or `barx'.
-
-       2. To enclose an expression for a suffix operator such as `*' to
-          act on.  Thus, `ba\(na\)*' matches `bananana', etc., with any
-          (zero or more) number of `na' strings.
-
-       3. To record a matched substring for future reference.
-
-     This last application is not a consequence of the idea of a
-     parenthetical grouping; it is a separate feature that happens to be
-     assigned as a second meaning to the same `\( ... \)' construct
-     because there is no conflict in practice between the two meanings.
-     Here is an explanation of this feature:
-
-`\DIGIT'
-     matches the same text that matched the DIGITth occurrence of a `\(
-     ... \)' construct.
-
-     In other words, after the end of a `\( ... \)' construct.  the
-     matcher remembers the beginning and end of the text matched by that
-     construct.  Then, later on in the regular expression, you can use
-     `\' followed by DIGIT to match that same text, whatever it may
-     have been.
-
-     The strings matching the first nine `\( ... \)' constructs
-     appearing in a regular expression are assigned numbers 1 through 9
-     in the order that the open parentheses appear in the regular
-     expression.  So you can use `\1' through `\9' to refer to the text
-     matched by the corresponding `\( ... \)' constructs.
-
-     For example, `\(.*\)\1' matches any newline-free string that is
-     composed of two identical halves.  The `\(.*\)' matches the first
-     half, which may be anything, but the `\1' that follows must match
-     the same exact text.
-
-`\(?: ... \)'
-     is called a "shy" grouping operator, and it is used just like `\(
-     ... \)', except that it does not cause the matched substring to be
-     recorded for future reference.
-
-     This is useful when you need a lot of grouping `\( ... \)'
-     constructs, but only want to remember one or two - or if you have
-     more than nine groupings and need to use backreferences to refer to
-     the groupings at the end.
-
-     Using `\(?: ... \)' rather than `\( ... \)' when you don't need
-     the captured substrings ought to speed up your programs some,
-     since it shortens the code path followed by the regular expression
-     engine, as well as the amount of memory allocation and string
-     copying it must do.  The actual performance gain to be observed
-     has not been measured or quantified as of this writing.
-
-     The shy grouping operator has been borrowed from Perl, and has not
-     been available prior to XEmacs 20.3, nor is it available in FSF
-     Emacs.
-
-`\w'
-     matches any word-constituent character.  The editor syntax table
-     determines which characters these are.  *Note Syntax::.
-
-`\W'
-     matches any character that is not a word constituent.
-
-`\sCODE'
-     matches any character whose syntax is CODE.  Here CODE is a
-     character that represents a syntax code: thus, `w' for word
-     constituent, `-' for whitespace, `(' for open parenthesis, etc.
-     *Note Syntax::, for a list of syntax codes and the characters that
-     stand for them.
-
-`\SCODE'
-     matches any character whose syntax is not CODE.
-
-   The following regular expression constructs match the empty
-string--that is, they don't use up any characters--but whether they
-match depends on the context.
-
-`\`'
-     matches the empty string, but only at the beginning of the buffer
-     or string being matched against.
-
-`\''
-     matches the empty string, but only at the end of the buffer or
-     string being matched against.
-
-`\='
-     matches the empty string, but only at point.  (This construct is
-     not defined when matching against a string.)
-
-`\b'
-     matches the empty string, but only at the beginning or end of a
-     word.  Thus, `\bfoo\b' matches any occurrence of `foo' as a
-     separate word.  `\bballs?\b' matches `ball' or `balls' as a
-     separate word.
-
-`\B'
-     matches the empty string, but _not_ at the beginning or end of a
-     word.
-
-`\<'
-     matches the empty string, but only at the beginning of a word.
-
-`\>'
-     matches the empty string, but only at the end of a word.
-
-   Here is a complicated regexp used by Emacs to recognize the end of a
-sentence together with any whitespace that follows.  It is given in Lisp
-syntax to enable you to distinguish the spaces from the tab characters.
-In Lisp syntax, the string constant begins and ends with a
-double-quote.  `\"' stands for a double-quote as part of the regexp,
-`\\' for a backslash as part of the regexp, `\t' for a tab and `\n' for
-a newline.
-
-     "[.?!][]\"')]*\\($\\|\t\\|  \\)[ \t\n]*"
-
-This regexp contains four parts: a character set matching period, `?'
-or `!'; a character set matching close-brackets, quotes or parentheses,
-repeated any number of times; an alternative in backslash-parentheses
-that matches end-of-line, a tab or two spaces; and a character set
-matching whitespace characters, repeated any number of times.
-
-\1f
-File: xemacs.info,  Node: Search Case,  Next: Replace,  Prev: Regexps,  Up: Search
-
-Searching and Case
-==================
-
-   All searches in Emacs normally ignore the case of the text they are
-searching through; if you specify searching for `FOO', `Foo' and `foo'
-are also considered a match.  Regexps, and in particular character
-sets, are included: `[aB]' matches `a' or `A' or `b' or `B'.
-
-   If you want a case-sensitive search, set the variable
-`case-fold-search' to `nil'.  Then all letters must match exactly,
-including case. `case-fold-search' is a per-buffer variable; altering
-it affects only the current buffer, but there is a default value which
-you can change as well.  *Note Locals::.  You can also use Case
-Sensitive Search from the Options menu on your screen.
-
-\1f
-File: xemacs.info,  Node: Replace,  Next: Other Repeating Search,  Prev: Search Case,  Up: Search
-
-Replacement Commands
-====================
-
-   Global search-and-replace operations are not needed as often in
-Emacs as they are in other editors, but they are available.  In
-addition to the simple `replace-string' command which is like that
-found in most editors, there is a `query-replace' command which asks
-you, for each occurrence of a pattern, whether to replace it.
-
-   The replace commands all replace one string (or regexp) with one
-replacement string.  It is possible to perform several replacements in
-parallel using the command `expand-region-abbrevs'.  *Note Expanding
-Abbrevs::.
-
-* Menu:
-
-* Unconditional Replace::  Replacing all matches for a string.
-* Regexp Replace::         Replacing all matches for a regexp.
-* Replacement and Case::   How replacements preserve case of letters.
-* Query Replace::          How to use querying.
-
-\1f
-File: xemacs.info,  Node: Unconditional Replace,  Next: Regexp Replace,  Prev: Replace,  Up: Replace
-
-Unconditional Replacement
--------------------------
-
-`M-x replace-string <RET> STRING <RET> NEWSTRING <RET>'
-     Replace every occurrence of STRING with NEWSTRING.
-
-`M-x replace-regexp <RET> REGEXP <RET> NEWSTRING <RET>'
-     Replace every match for REGEXP with NEWSTRING.
-
-   To replace every instance of `foo' after point with `bar', use the
-command `M-x replace-string' with the two arguments `foo' and `bar'.
-Replacement occurs only after point: if you want to cover the whole
-buffer you must go to the beginning first.  By default, all occurrences
-up to the end of the buffer are replaced.  To limit replacement to part
-of the buffer, narrow to that part of the buffer before doing the
-replacement (*note Narrowing::).
-
-   When `replace-string' exits, point is left at the last occurrence
-replaced.  The value of point when the `replace-string' command was
-issued is remembered on the mark ring; `C-u C-<SPC>' moves back there.
-
-   A numeric argument restricts replacement to matches that are
-surrounded by word boundaries.
-
-\1f
-File: xemacs.info,  Node: Regexp Replace,  Next: Replacement and Case,  Prev: Unconditional Replace,  Up: Replace
-
-Regexp Replacement
-------------------
-
-   `replace-string' replaces exact matches for a single string.  The
-similar command `replace-regexp' replaces any match for a specified
-pattern.
-
-   In `replace-regexp', the NEWSTRING need not be constant.  It can
-refer to all or part of what is matched by the REGEXP.  `\&' in
-NEWSTRING stands for the entire text being replaced.  `\D' in
-NEWSTRING, where D is a digit, stands for whatever matched the D'th
-parenthesized grouping in REGEXP.  For example,
-
-     M-x replace-regexp <RET> c[ad]+r <RET> \&-safe <RET>
-
-would replace (for example) `cadr' with `cadr-safe' and `cddr' with
-`cddr-safe'.
-
-     M-x replace-regexp <RET> \(c[ad]+r\)-safe <RET> \1 <RET>
-
-would perform exactly the opposite replacements.  To include a `\' in
-the text to replace with, you must give `\\'.
-
-\1f
-File: xemacs.info,  Node: Replacement and Case,  Next: Query Replace,  Prev: Regexp Replace,  Up: Replace
-
-Replace Commands and Case
--------------------------
-
-   If the arguments to a replace command are in lower case, the command
-preserves case when it makes a replacement.  Thus, the following
-command:
-
-     M-x replace-string <RET> foo <RET> bar <RET>
-
-replaces a lower-case `foo' with a lower case `bar', `FOO' with `BAR',
-and `Foo' with `Bar'.  If upper-case letters are used in the second
-argument, they remain upper-case every time that argument is inserted.
-If upper-case letters are used in the first argument, the second
-argument is always substituted exactly as given, with no case
-conversion.  Likewise, if the variable `case-replace' is set to `nil',
-replacement is done without case conversion.  If `case-fold-search' is
-set to `nil', case is significant in matching occurrences of `foo' to
-replace; also, case conversion of the replacement string is not done.
-
-\1f
-File: xemacs.info,  Node: Query Replace,  Prev: Replacement and Case,  Up: Replace
-
-Query Replace
--------------
-
-`M-% STRING <RET> NEWSTRING <RET>'
-`M-x query-replace <RET> STRING <RET> NEWSTRING <RET>'
-     Replace some occurrences of STRING with NEWSTRING.
-
-`M-x query-replace-regexp <RET> REGEXP <RET> NEWSTRING <RET>'
-     Replace some matches for REGEXP with NEWSTRING.
-
-   If you want to change only some of the occurrences of `foo' to
-`bar', not all of them, you can use `query-replace' instead of `M-%'.
-This command finds occurrences of `foo' one by one, displays each
-occurrence, and asks you whether to replace it.  A numeric argument to
-`query-replace' tells it to consider only occurrences that are bounded
-by word-delimiter characters.
-
-   Aside from querying, `query-replace' works just like
-`replace-string', and `query-replace-regexp' works just like
-`replace-regexp'.
-
-   The things you can type when you are shown an occurrence of STRING
-or a match for REGEXP are:
-
-`<SPC>'
-     to replace the occurrence with NEWSTRING.  This preserves case,
-     just like `replace-string', provided `case-replace' is non-`nil',
-     as it normally is.
-
-`<DEL>'
-     to skip to the next occurrence without replacing this one.
-
-`, (Comma)'
-     to replace this occurrence and display the result.  You are then
-     prompted for another input character.  However, since the
-     replacement has already been made, <DEL> and <SPC> are equivalent.
-     At this point, you can type `C-r' (see below) to alter the
-     replaced text.  To undo the replacement, you can type `C-x u'.
-     This exits the `query-replace'.  If you want to do further
-     replacement you must use `C-x ESC' to restart (*note Repetition::).
-
-`<ESC>'
-     to exit without doing any more replacements.
-
-`. (Period)'
-     to replace this occurrence and then exit.
-
-`!'
-     to replace all remaining occurrences without asking again.
-
-`^'
-     to go back to the location of the previous occurrence (or what
-     used to be an occurrence), in case you changed it by mistake.
-     This works by popping the mark ring.  Only one `^' in a row is
-     allowed, because only one previous replacement location is kept
-     during `query-replace'.
-
-`C-r'
-     to enter a recursive editing level, in case the occurrence needs
-     to be edited rather than just replaced with NEWSTRING.  When you
-     are done, exit the recursive editing level with `C-M-c' and the
-     next occurrence will be displayed.  *Note Recursive Edit::.
-
-`C-w'
-     to delete the occurrence, and then enter a recursive editing level
-     as in `C-r'.  Use the recursive edit to insert text to replace the
-     deleted occurrence of STRING.  When done, exit the recursive
-     editing level with `C-M-c' and the next occurrence will be
-     displayed.
-
-`C-l'
-     to redisplay the screen and then give another answer.
-
-`C-h'
-     to display a message summarizing these options, then give another
-     answer.
-
-   If you type any other character, Emacs exits the `query-replace', and
-executes the character as a command.  To restart the `query-replace',
-use `C-x <ESC>', which repeats the `query-replace' because it used the
-minibuffer to read its arguments.  *Note C-x ESC: Repetition.
-
-\1f
-File: xemacs.info,  Node: Other Repeating Search,  Prev: Replace,  Up: Search
-
-Other Search-and-Loop Commands
-==============================
-
-   Here are some other commands that find matches for a regular
-expression.  They all operate from point to the end of the buffer.
-
-`M-x occur'
-     Print each line that follows point and contains a match for the
-     specified regexp.  A numeric argument specifies the number of
-     context lines to print before and after each matching line; the
-     default is none.
-
-     The buffer `*Occur*' containing the output serves as a menu for
-     finding occurrences in their original context.  Find an occurrence
-     as listed in `*Occur*', position point there, and type `C-c C-c';
-     this switches to the buffer that was searched and moves point to
-     the original of the same occurrence.
-
-`M-x list-matching-lines'
-     Synonym for `M-x occur'.
-
-`M-x count-matches'
-     Print the number of matches following point for the specified
-     regexp.
-
-`M-x delete-non-matching-lines'
-     Delete each line that follows point and does not contain a match
-     for the specified regexp.
-
-`M-x delete-matching-lines'
-     Delete each line that follows point and contains a match for the
-     specified regexp.
-
-\1f
-File: xemacs.info,  Node: Fixit,  Next: Files,  Prev: Search,  Up: Top
-
-Commands for Fixing Typos
-*************************
-
-   This chapter describes commands that are especially useful when you
-catch a mistake in your text just after you have made it, or when you
-change your mind while composing text on line.
-
-* Menu:
-
-* Kill Errors:: Commands to kill a batch of recently entered text.
-* Transpose::   Exchanging two characters, words, lines, lists...
-* Fixing Case:: Correcting case of last word entered.
-* Spelling::    Apply spelling checker to a word, or a whole file.
-
-\1f
-File: xemacs.info,  Node: Kill Errors,  Next: Transpose,  Prev: Fixit,  Up: Fixit
-
-Killing Your Mistakes
-=====================
-
-`<DEL>'
-     Delete last character (`delete-backward-char').
-
-`M-<DEL>'
-     Kill last word (`backward-kill-word').
-
-`C-x <DEL>'
-     Kill to beginning of sentence (`backward-kill-sentence').
-
-   The <DEL> character (`delete-backward-char') is the most important
-correction command.  When used among graphic (self-inserting)
-characters, it can be thought of as canceling the last character typed.
-
-   When your mistake is longer than a couple of characters, it might be
-more convenient to use `M-<DEL>' or `C-x <DEL>'.  `M-<DEL>' kills back
-to the start of the last word, and `C-x <DEL>' kills back to the start
-of the last sentence.  `C-x <DEL>' is particularly useful when you are
-thinking of what to write as you type it, in case you change your mind
-about phrasing.  `M-<DEL>' and `C-x <DEL>' save the killed text for
-`C-y' and `M-y' to retrieve.  *Note Yanking::.
-
-   `M-<DEL>' is often useful even when you have typed only a few
-characters wrong, if you know you are confused in your typing and aren't
-sure exactly what you typed.  At such a time, you cannot correct with
-<DEL> except by looking at the screen to see what you did.  It requires
-less thought to kill the whole word and start over.
-