X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=info%2Fxemacs.info-5;h=41187a8914fab1478a8c5714dbc25e8e5ab30945;hb=e47437dbf7b5331e93c4a2c5de17a3544060d806;hp=0923e1805d32ec07ab272423b9229daaa796086a;hpb=376658ea71d16dced8acff36c3e385ac3738d868;p=chise%2Fxemacs-chise.git- diff --git a/info/xemacs.info-5 b/info/xemacs.info-5 index 0923e18..41187a8 100644 --- a/info/xemacs.info-5 +++ b/info/xemacs.info-5 @@ -1,4 +1,4 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from +This is ../info/xemacs.info, produced by makeinfo version 4.0b from xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -30,6 +30,727 @@ versions, except that the sections entitled "The GNU Manifesto", translation approved by the author instead of in the original English.  +File: xemacs.info, Node: Library Keywords, Next: Help Mode, Prev: Apropos, Up: Help + +Keyword Search for Lisp Libraries +================================= + + The `C-h p' command lets you search the standard Emacs Lisp +libraries by topic keywords. Here is a partial list of keywords you can +use: + + abbrev abbreviation handling, typing shortcuts, macros + bib code related to the `bib' bibliography processor + c C, C++, and Objective-C language support + calendar calendar and time management support + comm communications, networking, remote access to files + data support for editing files of data + docs support for Emacs documentation + dumped files preloaded into Emacs + emulations emulations of other editors + extensions Emacs Lisp language extensions + faces support for multiple fonts + frames support for Emacs frames and window systems + games games, jokes and amusements + hardware support for interfacing with exotic hardware + help support for on-line help systems + hypermedia support for links between text or other media types + i18n internationalization and alternate character-set support + internal code for Emacs internals, build process, defaults + languages specialized modes for editing programming languages + lisp Lisp support, including Emacs Lisp + local code local to your site + maint maintenance aids for the Emacs development group + mail modes for electronic-mail handling + matching various sorts of searching and matching + mouse mouse support + mule multi-language extensions + news support for netnews reading and posting + oop support for object-oriented programming + outlines support for hierarchical outlining + processes process, subshell, compilation, and job control support + terminals support for terminal types + tex code related to the TeX formatter + tools programming tools + unix front-ends/assistants for, or emulators of, UNIX features + vms support code for vms + wp word processing + + +File: xemacs.info, Node: Help Mode, Next: Misc Help, Prev: Library Keywords, Up: Help + +Help Mode Commands +================== + + Help buffers provide the commands of View mode (*note Misc File +Ops::), plus a few special commands of their own. + +`' + Scroll forward. + +`' +`' + Scroll backward. + + When a command name (*note Running Commands by Name: M-x.) or +variable name (*note Variables::) appears in the documentation, it +normally appears inside paired single-quotes. + + +File: xemacs.info, Node: Misc Help, Prev: Help Mode, Up: Help + +Other Help Commands +=================== + + `C-h i' (`info') runs the Info program, which is used for browsing +through structured documentation files. The entire XEmacs manual is +available within Info. Eventually all the documentation of the GNU +system will be available. Type `h' after entering Info to run a +tutorial on using Info. + + If you specify a numeric argument, `C-h i' prompts for the name of a +documentation file. This way, you can browse a file which doesn't have +an entry in the top-level Info menu. It is also handy when you need to +get to the documentation quickly, and you know the exact name of the +file. + + There are two special help commands for accessing XEmacs +documentation through Info. `C-h C-f FUNCTION ' enters Info and +goes straight to the documentation of the XEmacs function FUNCTION. +`C-h C-k KEY' enters Info and goes straight to the documentation of the +key KEY. These two keys run the commands `Info-elisp-ref' and +`Info-goto-emacs-key-command-node'. + + If something surprising happens, and you are not sure what commands +you typed, use `C-h l' (`view-lossage'). `C-h l' prints the last 100 +command characters you typed in. If you see commands that you don't +know, you can use `C-h c' to find out what they do. + + XEmacs has several major modes. Each mode redefines a few keys and +makes a few other changes in how editing works. `C-h m' +(`describe-mode') prints documentation on the current major mode, which +normally describes all the commands that are changed in this mode. + + `C-h b' (`describe-bindings') and `C-h s' (`describe-syntax') +present information about the current XEmacs mode that is not covered +by `C-h m'. `C-h b' displays a list of all the key bindings currently +in effect, with the local bindings of the current major mode first, +followed by the global bindings (*note Key Bindings::). `C-h s' +displays the contents of the syntax table with explanations of each +character's syntax (*note Syntax::). + + You can get a similar list for a particular prefix key by typing +`C-h' after the prefix key. (There are a few prefix keys for which +this does not work--those that provide their own bindings for `C-h'. +One of these is , because ` C-h' is actually `C-M-h', which +marks a defun.) + + The other `C-h' options display various files of useful information. +`C-h C-w' (`describe-no-warranty') displays the full details on the +complete absence of warranty for XEmacs. `C-h n' (`view-emacs-news') +displays the file `xemacs/etc/NEWS', which contains documentation on +XEmacs changes arranged chronologically. `C-h F' (`xemacs-local-faq') +displays local version of the XEmacs +frequently-answered-questions-list. `C-h t' (`help-with-tutorial') +displays the learn-by-doing XEmacs tutorial. `C-h C-c' +(`describe-copying') displays the file `xemacs/etc/COPYING', which +tells you the conditions you must obey in distributing copies of +XEmacs. `C-h C-d' (`describe-distribution') displays another file named +`xemacs/etc/DISTRIB', which tells you how you can order a copy of the +latest version of XEmacs. + + +File: xemacs.info, Node: Mark, Next: Mouse Selection, Prev: Help, Up: Top + +Selecting Text +************** + + Many Emacs commands operate on an arbitrary contiguous part of the +current buffer. You can select text in two ways: + + * You use special keys to select text by defining a region between + point and the mark. + + * If you are running XEmacs under X, you can also select text with + the mouse. + +The Mark and the Region +======================= + + To specify the text for a command to operate on, set "the mark" at +one end of it, and move point to the other end. The text between point +and the mark is called "the region". You can move point or the mark to +adjust the boundaries of the region. It doesn't matter which one is +set first chronologically, or which one comes earlier in the text. + + Once the mark has been set, it remains until it is set again at +another place. The mark remains fixed with respect to the preceding +character if text is inserted or deleted in a buffer. Each Emacs +buffer has its own mark; when you return to a buffer that had been +selected previously, it has the same mark it had before. + + Many commands that insert text, such as `C-y' (`yank') and `M-x +insert-buffer', position the mark at one end of the inserted text--the +opposite end from where point is positioned, so that the region +contains the text just inserted. + + Aside from delimiting the region, the mark is useful for marking a +spot that you may want to go back to. To make this feature more useful, +Emacs remembers 16 previous locations of the mark in the `mark ring'. + +* Menu: + +* Setting Mark:: Commands to set the mark. +* Using Region:: Summary of ways to operate on contents of the region. +* Marking Objects:: Commands to put region around textual units. +* Mark Ring:: Previous mark positions saved so you can go back there. + + +File: xemacs.info, Node: Setting Mark, Next: Using Region, Prev: Mark, Up: Mark + +Setting the Mark +---------------- + + Here are some commands for setting the mark: + +`C-' + Set the mark where point is (`set-mark-command'). + +`C-@' + The same. + +`C-x C-x' + Interchange mark and point (`exchange-point-and-mark'). + +`C-<' + Pushes a mark at the beginning of the buffer. + +`C->' + Pushes a mark at the end of the buffer. + + For example, to convert part of the buffer to all upper-case, you +can use the `C-x C-u' (`upcase-region') command, which operates on the +text in the region. First go to the beginning of the text you want to +capitalize and type `C-' to put the mark there, then move to the +end, and then type `C-x C-u' to capitalize the selected region. You +can also set the mark at the end of the text, move to the beginning, +and then type `C-x C-u'. Most commands that operate on the text in the +region have the word `region' in their names. + + The most common way to set the mark is with the `C-' command +(`set-mark-command'). This command sets the mark where point is. You +can then move point away, leaving the mark behind. It is actually +incorrect to speak of the character `C-'; there is no such +character. When you type while holding down , you get the +character `C-@' on most terminals. This character is actually bound to +`set-mark-command'. But unless you are unlucky enough to have a +terminal where typing `C-' does not produce `C-@', you should +think of this character as `C-'. + + Since terminals have only one cursor, Emacs cannot show you where the +mark is located. Most people use the mark soon after they set it, before +they forget where it is. But you can see where the mark is with the +command `C-x C-x' (`exchange-point-and-mark') which puts the mark where +point was and point where the mark was. The extent of the region is +unchanged, but the cursor and point are now at the previous location of +the mark. + + Another way to set the mark is to push the mark to the beginning of a +buffer while leaving point at its original location. If you supply an +argument to `C-<' (`mark-beginning-of-buffer'), the mark is pushed N/10 +of the way from the true beginning of the buffer. You can also set the +mark at the end of a buffer with `C->' (`mark-end-of-buffer'). It +pushes the mark to the end of the buffer, leaving point alone. +Supplying an argument to the command pushes the mark N/10 of the way +from the true end of the buffer. + + If you are using XEmacs under the X window system, you can set the +variable `zmacs-regions' to `t'. This makes the current region (defined +by point and mark) highlight and makes it available as the X clipboard +selection, which means you can use the menu bar items on it. *Note +Active Regions::, for more information. + + `C-x C-x' is also useful when you are satisfied with the location of +point but want to move the mark; do `C-x C-x' to put point there and +then you can move it. A second use of `C-x C-x', if necessary, puts +the mark at the new location with point back at its original location. + + +File: xemacs.info, Node: Using Region, Next: Marking Objects, Prev: Setting Mark, Up: Mark + +Operating on the Region +----------------------- + + Once you have created an active region, you can do many things to +the text in it: + * Kill it with `C-w' (*note Killing::). + + * Save it in a register with `C-x r s' (*note Registers::). + + * Save it in a buffer or a file (*note Accumulating Text::). + + * Convert case with `C-x C-l' or `C-x C-u' + (*note Case::). + + * Evaluate it as Lisp code with `M-x eval-region' (*note Lisp + Eval::). + + * Fill it as text with `M-q' (*note Filling::). + + * Print hardcopy with `M-x print-region' (*note Hardcopy::). + + * Indent it with `C-x ' or `C-M-\' (*note Indentation::). + + +File: xemacs.info, Node: Marking Objects, Next: Mark Ring, Prev: Using Region, Up: Mark + +Commands to Mark Textual Objects +-------------------------------- + + There are commands for placing point and the mark around a textual +object such as a word, list, paragraph or page. + +`M-@' + Set mark after end of next word (`mark-word'). This command and + the following one do not move point. + +`C-M-@' + Set mark after end of next Lisp expression (`mark-sexp'). + +`M-h' + Put region around current paragraph (`mark-paragraph'). + +`C-M-h' + Put region around current Lisp defun (`mark-defun'). + +`C-x h' + Put region around entire buffer (`mark-whole-buffer'). + +`C-x C-p' + Put region around current page (`mark-page'). + + `M-@' (`mark-word') puts the mark at the end of the next word, while +`C-M-@' (`mark-sexp') puts it at the end of the next Lisp expression. +These characters sometimes save you some typing. + + A number of commands are available that set both point and mark and +thus delimit an object in the buffer. `M-h' (`mark-paragraph') moves +point to the beginning of the paragraph that surrounds or follows +point, and puts the mark at the end of that paragraph (*note +Paragraphs::). You can then indent, case-convert, or kill the whole +paragraph. In the same fashion, `C-M-h' (`mark-defun') puts point +before and the mark after the current or following defun (*note +Defuns::). `C-x C-p' (`mark-page') puts point before the current page +(or the next or previous, depending on the argument), and mark at the +end (*note Pages::). The mark goes after the terminating page +delimiter (to include it), while point goes after the preceding page +delimiter (to exclude it). Finally, `C-x h' (`mark-whole-buffer') sets +up the entire buffer as the region by putting point at the beginning +and the mark at the end. + + +File: xemacs.info, Node: Mark Ring, Prev: Marking Objects, Up: Mark + +The Mark Ring +------------- + + Aside from delimiting the region, the mark is also useful for marking +a spot that you may want to go back to. To make this feature more +useful, Emacs remembers 16 previous locations of the mark in the "mark +ring". Most commands that set the mark push the old mark onto this +ring. To return to a marked location, use `C-u C-' (or `C-u +C-@'); this is the command `set-mark-command' given a numeric argument. +The command moves point to where the mark was, and restores the mark +from the ring of former marks. Repeated use of this command moves point +to all the old marks on the ring, one by one. The marks you have seen +go to the end of the ring, so no marks are lost. + + Each buffer has its own mark ring. All editing commands use the +current buffer's mark ring. In particular, `C-u C-' always stays +in the same buffer. + + Many commands that can move long distances, such as `M-<' +(`beginning-of-buffer'), start by setting the mark and saving the old +mark on the mark ring. This makes it easier for you to move back +later. Searches set the mark, unless they do not actually move point. +When a command sets the mark, `Mark Set' is printed in the echo area. + + The variable `mark-ring-max' is the maximum number of entries to +keep in the mark ring. If that many entries exist and another entry is +added, the last entry in the list is discarded. Repeating `C-u +C-' circulates through the entries that are currently in the ring. + + The variable `mark-ring' holds the mark ring itself, as a list of +marker objects in the order most recent first. This variable is local +in every buffer. + + +File: xemacs.info, Node: Mouse Selection, Next: Additional Mouse Operations, Prev: Mark, Up: Top + +Selecting Text with the Mouse +============================= + + If you are using XEmacs under X, you can use the mouse pointer to +select text. (The normal mouse pointer is an I-beam, the same pointer +that `xterm' uses.) + + The glyph variable `text-pointer-glyph' controls the shape of the +mouse pointer when over text. You can also control the shape of the +mouse pointer when over nontext using `nontext-pointer-glyph', and the +shape of the mouse pointer when over the modeline using +`modeline-pointer-glyph'. (Remember, you should use `set-glyph-image', +not `setq', to set one of these variables.) + + If you want to get fancy, you can set the foreground and background +colors of the mouse pointer by setting the `pointer' face. + + There are two ways to select a region of text with the mouse: + + To select a word in text, double-click with the left mouse button +while the mouse cursor is over the word. The word is highlighted when +selected. On monochrome monitors, a stippled background indicates that a +region of text has been highlighted. On color monitors, a color +background indicates highlighted text. You can triple-click to select +whole lines. + + To select an arbitrary region of text: + + 1. Move the mouse cursor over the character at the beginning of the + region of text you want to select. + + 2. Press and hold the left mouse button. + + 3. While holding the left mouse button down, drag the cursor to the + character at the end of the region of text you want to select. + + 4. Release the left mouse button. + The selected region of text is highlighted. + + Once a region of text is selected, it becomes the primary X selection +(*note Using X Selections::) as well as the Emacs selected region. You +can paste it into other X applications and use the options from the +Edit pull-down menu on it. Since it is also the Emacs region, you can +use Emacs region commands on it. + + +File: xemacs.info, Node: Additional Mouse Operations, Next: Killing, Prev: Mouse Selection, Up: Top + +Additional Mouse Operations +=========================== + + XEmacs also provides the following mouse functions. Most of these +are not bound to mouse gestures by default, but they are provided for +your customization pleasure. For example, if you wanted `shift-left' +(that is, holding down the key and clicking the left mouse +button) to delete the character at which you are pointing, then you +could do this: + + (global-set-key '(shift button1) 'mouse-del-char) + +`mouse-del-char' + Delete the character pointed to by the mouse. + +`mouse-delete-window' + Delete the Emacs window that the mouse is on. + +`mouse-keep-one-window' + Select the Emacs window that the mouse is on, then delete all other + windows on this frame. + +`mouse-kill-line' + Kill the line pointed to by the mouse. + +`mouse-line-length' + Print the length of the line indicated by the pointer. + +`mouse-scroll' + Scroll point to the mouse position. + +`mouse-select' + Select the Emacs window the mouse is on. + +`mouse-select-and-split' + Select the Emacs window mouse is on, then split it vertically in + half. + +`mouse-set-mark' + Select the Emacs window the mouse is on and set the mark at the + mouse position. Display the cursor at that position for a second. + +`mouse-set-point' + Select the Emacs window that the mouse is on and move point to the + mouse position. + +`mouse-track' + Make a selection with the mouse. This is the default binding of + the left mouse button (). + +`mouse-track-adjust' + Extend the existing selection. This is the default binding of + . + +`mouse-track-and-copy-to-cutbuffer' + Make a selection like `mouse-track', but also copy it to the cut + buffer. + +`mouse-track-delete-and-insert' + Make a selection with the mouse and insert it at point. This is + the default binding of . + +`mouse-track-insert' + Make a selection with the mouse and insert it at point. This is + the default binding of . + +`mouse-window-to-region' + Narrow a window to the region between the cursor and the mouse + pointer. + + The `M-x mouse-track' command should be bound to a mouse button. If +you click-and-drag, the selection is set to the region between the +point of the initial click and the point at which you release the +button. These positions do not need to be ordered. + + If you click-and-release without moving the mouse, the point is +moved, and the selection is disowned (there will be no selection +owner.) The mark will be set to the previous position of point. + + If you double-click, the selection will extend by symbols instead of +by characters. If you triple-click, the selection will extend by lines. + + If you drag the mouse off the top or bottom of the window, you can +select pieces of text that are larger than the visible part of the +buffer; the buffer will scroll as necessary. + + The selected text becomes the current X selection, and is also +copied to the top of the kill ring. Point will be left at the position +at which you released the button and the mark will be left at the +initial click position. Bind a mouse click to +`mouse-track-and-copy-to-cutbuffer' to copy selections to the cut +buffer. (See also the `mouse-track-adjust' command, on +`Shift-button1'.) + + The `M-x mouse-track-adjust' command should be bound to a mouse +button. The selection will be enlarged or shrunk so that the point of +the mouse click is one of its endpoints. This is only meaningful after +the `mouse-track' command () has been executed. + + The `M-x mouse-track-delete-and-insert' command is exactly the same +as the `mouse-track' command on , except that point is not +moved; the selected text is immediately inserted after being selected; +and the text of the selection is deleted. + + The `M-x mouse-track-insert' command is exactly the same as the +`mouse-track' command on , except that point is not moved; the +selected text is immediately inserted after being selected; and the +selection is immediately disowned afterwards. + + +File: xemacs.info, Node: Killing, Next: Yanking, Prev: Additional Mouse Operations, Up: Top + +Deletion and Killing +==================== + + Most commands that erase text from the buffer save it. You can get +the text back if you change your mind, or you can move or copy it to +other parts of the buffer. Commands which erase text and save it in the +kill ring are known as "kill" commands. Some other commands erase text +but do not save it; they are known as "delete" commands. (This +distinction is made only for erasing text in the buffer.) + + The commands' names and individual descriptions use the words `kill' +and `delete' to indicate what they do. If you perform a kill or delete +command by mistake, use the `C-x u' (`undo') command to undo it (*note +Undo::). The delete commands include `C-d' (`delete-char') and +(`delete-backward-char'), which delete only one character at a time, +and those commands that delete only spaces or newlines. Commands that +can destroy significant amounts of nontrivial data usually kill. + +Deletion +-------- + +`C-d' + Delete next character (`delete-char'). + +`' + Delete previous character (`delete-backward-char'). + +`M-\' + Delete spaces and tabs around point (`delete-horizontal-space'). + +`M-' + Delete spaces and tabs around point, leaving one space + (`just-one-space'). + +`C-x C-o' + Delete blank lines around the current line (`delete-blank-lines'). + +`M-^' + Join two lines by deleting the intervening newline, and any + indentation following it (`delete-indentation'). + + The most basic delete commands are `C-d' (`delete-char') and +(`delete-backward-char'). `C-d' deletes the character after point, the +one the cursor is "on top of". Point doesn't move. deletes the +character before the cursor, and moves point back. You can delete +newlines like any other characters in the buffer; deleting a newline +joins two lines. Actually, `C-d' and aren't always delete +commands; if you give them an argument, they kill instead, since they +can erase more than one character this way. + + The other delete commands delete only formatting characters: spaces, +tabs and newlines. `M-\' (`delete-horizontal-space') deletes all +spaces and tab characters before and after point. `M-' +(`just-one-space') does the same but leaves a single space after point, +regardless of the number of spaces that existed previously (even zero). + + `C-x C-o' (`delete-blank-lines') deletes all blank lines after the +current line. If the current line is blank, it deletes all blank lines +preceding the current line as well as leaving one blank line, the +current line. `M-^' (`delete-indentation') joins the current line and +the previous line, or, if given an argument, joins the current line and +the next line by deleting a newline and all surrounding spaces, possibly +leaving a single space. *Note M-^: Indentation. + +Killing by Lines +---------------- + +`C-k' + Kill rest of line or one or more lines (`kill-line'). + + The simplest kill command is `C-k'. If given at the beginning of a +line, it kills all the text on the line, leaving the line blank. If +given on a blank line, the blank line disappears. As a consequence, a +line disappears completely if you go to the front of a non-blank line +and type `C-k' twice. + + More generally, `C-k' kills from point up to the end of the line, +unless it is at the end of a line. In that case, it kills the newline +following the line, thus merging the next line into the current one. +Emacs ignores invisible spaces and tabs at the end of the line when +deciding which case applies: if point appears to be at the end of the +line, you can be sure the newline will be killed. + + If you give `C-k' a positive argument, it kills that many lines and +the newlines that follow them (however, text on the current line before +point is not killed). With a negative argument, `C-k' kills back to a +number of line beginnings. An argument of -2 means kill back to the +second line beginning. If point is at the beginning of a line, that +line beginning doesn't count, so `C-u - 2 C-k' with point at the front +of a line kills the two previous lines. + + `C-k' with an argument of zero kills all the text before point on the +current line. + +Other Kill Commands +------------------- + +`C-w' + Kill region (from point to the mark) (`kill-region'). *Note + Words::. + +`M-d' + Kill word (`kill-word'). + +`M-' + Kill word backwards (`backward-kill-word'). + +`C-x ' + Kill back to beginning of sentence (`backward-kill-sentence'). + *Note Sentences::. + +`M-k' + Kill to end of sentence (`kill-sentence'). + +`C-M-k' + Kill sexp (`kill-sexp'). *Note Lists::. + +`M-z CHAR' + Kill up to next occurrence of CHAR (`zap-to-char'). + + `C-w' (`kill-region') is a very general kill command; it kills +everything between point and the mark. You can use this command to kill +any contiguous sequence of characters by first setting the mark at one +end of a sequence of characters, then going to the other end and typing +`C-w'. + + A convenient way of killing is combined with searching: `M-z' +(`zap-to-char') reads a character and kills from point up to (but not +including) the next occurrence of that character in the buffer. If +there is no next occurrence, killing goes to the end of the buffer. A +numeric argument acts as a repeat count. A negative argument means to +search backward and kill text before point. + + Other syntactic units can be killed: words, with `M-' and `M-d' +(*note Words::); sexps, with `C-M-k' (*note Lists::); and sentences, +with `C-x ' and `M-k' (*note Sentences::). + + +File: xemacs.info, Node: Yanking, Next: Using X Selections, Prev: Killing, Up: Top + +Yanking +======= + + "Yanking" means getting back text which was killed. Some systems +call this "pasting". The usual way to move or copy text is to kill it +and then yank it one or more times. + +`C-y' + Yank last killed text (`yank'). + +`M-y' + Replace re-inserted killed text with the previously killed text + (`yank-pop'). + +`M-w' + Save region as last killed text without actually killing it + (`copy-region-as-kill'). + +`C-M-w' + Append next kill to last batch of killed text (`append-next-kill'). + +* Menu: + +* Kill Ring:: Where killed text is stored. Basic yanking. +* Appending Kills:: Several kills in a row all yank together. +* Earlier Kills:: Yanking something killed some time ago. + + +File: xemacs.info, Node: Kill Ring, Next: Appending Kills, Prev: Yanking, Up: Yanking + +The Kill Ring +------------- + + All killed text is recorded in the "kill ring", a list of blocks of +text that have been killed. There is only one kill ring, used in all +buffers, so you can kill text in one buffer and yank it in another +buffer. This is the usual way to move text from one file to another. +(*Note Accumulating Text::, for some other ways.) + + If you have two separate Emacs processes, you cannot use the kill +ring to move text. If you are using XEmacs under X, however, you can +use the X selection mechanism to move text from one to another. + + If you are using XEmacs under X and have one Emacs process with +multiple frames, they do share the same kill ring. You can kill or +copy text in one Emacs frame, then yank it in the other frame belonging +to the same process. + + The command `C-y' (`yank') reinserts the text of the most recent +kill. It leaves the cursor at the end of the text and sets the mark at +the beginning of the text. *Note Mark::. + + `C-u C-y' yanks the text, leaves the cursor in front of the text, +and sets the mark after it, if the argument is with just a `C-u'. Any +other argument, including `C-u' and digits, has different results, +described below, under "Yanking Earlier Kills". + + To copy a block of text, you can also use `M-w' +(`copy-region-as-kill'), which copies the region into the kill ring +without removing it from the buffer. `M-w' is similar to `C-w' followed +by `C-y' but does not mark the buffer as "modified" and does not +actually cut anything. + + File: xemacs.info, Node: Appending Kills, Next: Earlier Kills, Prev: Kill Ring, Up: Yanking Appending Kills @@ -431,742 +1152,3 @@ Emacs. Using it on a file that Emacs is visiting can produce confusing results, because the file's text inside Emacs does not change while the file itself changes. - -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. - - -File: xemacs.info, Node: Registers, Next: Display, Prev: Rectangles, Up: Top - -Registers -********* - - Emacs "registers" are places in which you can save text or positions -for later use. Text saved in a register can be copied 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 either a piece of text, a position, or a rectangle, but only -one thing at any given time. Whatever you store in a register remains -there until you store something else in that register. - -* Menu: - -* RegPos:: Saving positions in registers. -* RegText:: Saving text in registers. -* RegRect:: Saving rectangles in registers. - -`M-x view-register 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. - - -File: xemacs.info, Node: RegPos, Next: RegText, Prev: Registers, Up: Registers - -Saving Positions in Registers -============================= - - Saving a position records a spot in a buffer so you can move back -there later. Moving to a saved position re-selects the buffer and -moves point to the spot. - -`C-x r SPC R' - Save the location of point in register R (`point-to-register'). - -`C-x r j R' - Jump to the location saved in register R (`register-to-point'). - - To save the current location of point in a register, choose a name R -and type `C-x r SPC R'. The register R retains the location thus saved -until you store something else in that register. - - The command `C-x r j R' moves point to the location 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. - - -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 g' -(`insert-register'). - -`C-x r s R' - Copy region into register R (`copy-to-register'). - -`C-x r g 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' deletes the text -from the buffer as well. - - `C-x r g 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, it puts point after the text and the mark -before it. - - -File: xemacs.info, Node: RegRect, 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' - Insert the rectangle stored in register R (if it contains a - rectangle) (`insert-register'). - - The `C-x r g' command inserts linear text if the register contains -that, or inserts a rectangle if the register contains one. - - -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. - - -File: xemacs.info, Node: Scrolling, Next: Horizontal Scrolling, Prev: Display, Up: Display - -Scrolling -========= - - If a buffer contains text that is too large to fit entirely within -the window that is displaying the buffer, XEmacs shows a contiguous -section of the text. The section shown always contains point. - - "Scrolling" means moving text up or down in the window so that -different parts of the text are visible. Scrolling forward means that -text moves up, and new text appears at the bottom. Scrolling backward -moves text down and new text appears at the top. - - Scrolling happens automatically if you move point past the bottom or -top of the window. You can also explicitly request scrolling with the -commands in this section. - -`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'). - -`M-v' -`pgup' -`prior' - Scroll backward (`scroll-down'). - -`ARG C-l' - Scroll so point is on line ARG (`recenter'). - - The most basic scrolling command is `C-l' (`recenter') with no -argument. It clears the entire frame and redisplays all windows. In -addition, it scrolls the selected window so that point is halfway down -from the top of the window. - - The scrolling commands `C-v' and `M-v' let you move all the text in -the window up or down a few lines. `C-v' (`scroll-up') with an -argument shows you that many more lines at the bottom of the window, -moving the text and point up together as `C-l' might. `C-v' with a -negative argument shows you more lines at the top of the window. -`Meta-v' (`scroll-down') is like `C-v', but moves in the opposite -direction. - - To read the buffer a windowful at a time, use `C-v' with no -argument. `C-v' takes the last two lines at the bottom of the window -and puts them at the top, followed by nearly a whole windowful of lines -not previously visible. Point moves to the new top of the window if it -was in the text scrolled off the top. `M-v' with no argument moves -backward with similar overlap. The number of lines of overlap across a -`C-v' or `M-v' is controlled by the variable -`next-screen-context-lines'; by default, it is two. - - Another way to scroll is using `C-l' with a numeric argument. `C-l' -does not clear the frame when given an argument; it only scrolls the -selected window. With a positive argument N, `C-l' repositions text to -put point N lines down from the top. An argument of zero puts point on -the very top line. Point does not move with respect to the text; -rather, the text and point move rigidly on the frame. `C-l' with a -negative argument puts point that many lines from the bottom of the -window. For example, `C-u - 1 C-l' puts point on the bottom line, and -`C-u - 5 C-l' puts it five lines from the bottom. Just `C-u' as -argument, as in `C-u C-l', scrolls point to the center of the frame. - - Scrolling happens automatically if point has moved out of the visible -portion of the text when it is time to display. Usually scrolling is -done to put point vertically centered within the window. However, if -the variable `scroll-step' has a non-zero value, an attempt is made to -scroll the buffer by that many lines; if that is enough to bring point -back into visibility, that is what happens. - - Scrolling happens automatically if point has moved out of the visible -portion of the text when it is time to display. Usually scrolling is -done to put point vertically centered within the window. However, if -the variable `scroll-step' has a non-zero value, an attempt is made to -scroll the buffer by that many lines; if that is enough to bring point -back into visibility, that is what happens. - - If you set `scroll-step' to a small value because you want to use -arrow keys to scroll the screen without recentering, the redisplay -preemption will likely make XEmacs keep recentering the screen when -scrolling fast, regardless of `scroll-step'. To prevent this, set -`scroll-conservatively' to a small value, which will have the result of -overriding the redisplay preemption. - - -File: xemacs.info, Node: Horizontal Scrolling, Prev: Scrolling, Up: Display - -Horizontal Scrolling -==================== - -`C-x <' - Scroll text in current window to the left (`scroll-left'). - -`C-x >' - Scroll to the right (`scroll-right'). - - The text in a window can also be scrolled horizontally. This means -that each line of text is shifted sideways in the window, and one or -more characters at the beginning of each line are not displayed at all. -When a window has been scrolled horizontally in this way, text lines -are truncated rather than continued (*note Continuation Lines::), with -a `$' appearing in the first column when there is text truncated to the -left, and in the last column when there is text truncated to the right. - - The command `C-x <' (`scroll-left') scrolls the selected window to -the left by N columns with argument N. With no argument, it scrolls by -almost the full width of the window (two columns less, to be precise). -`C-x >' (`scroll-right') scrolls similarly to the right. The window -cannot be scrolled any farther to the right once it is displaying -normally (with each line starting at the window's left margin); -attempting to do so has no effect. - - -File: xemacs.info, Node: Selective Display, Next: Display Vars, Prev: Display, Up: Display - -Selective Display -================= - - XEmacs can hide lines indented more than a certain number of columns -(you specify how many columns). This allows you to get an overview of -a part of a program. - - To hide lines, type `C-x $' (`set-selective-display') with a numeric -argument N. (*Note Arguments::, for information on giving the -argument.) Lines with at least N columns of indentation disappear from -the screen. The only indication of their presence are three dots -(`...'), which appear at the end of each visible line that is followed -by one or more invisible ones. - - The invisible lines are still present in the buffer, and most editing -commands see them as usual, so it is very easy to put point in the -middle of invisible text. When this happens, the cursor appears at the -end of the previous line, after the three dots. If point is at the end -of the visible line, before the newline that ends it, the cursor -appears before the three dots. - - The commands `C-n' and `C-p' move across the invisible lines as if -they were not there. - - To make everything visible again, type `C-x $' with no argument. - - -File: xemacs.info, Node: Display Vars, Prev: Selective Display, Up: Display - -Variables Controlling Display -============================= - - This section contains information for customization only. Beginning -users should skip it. - - When you reenter XEmacs after suspending, XEmacs normally clears the -screen and redraws the entire display. On some terminals with more than -one page of memory, it is possible to arrange the termcap entry so that -the `ti' and `te' strings (output to the terminal when XEmacs is -entered and exited, respectively) switch between pages of memory so as -to use one page for XEmacs and another page for other output. In that -case, you might want to set the variable `no-redraw-on-reenter' to -non-`nil' so that XEmacs will assume, when resumed, that the screen -page it is using still contains what XEmacs last wrote there. - - The variable `echo-keystrokes' controls the echoing of -multi-character keys; its value is the number of seconds of pause -required to cause echoing to start, or zero, meaning don't echo at all. -*Note Echo Area::. - - If the variable `ctl-arrow' is `nil', control characters in the -buffer are displayed with octal escape sequences, all except newline and -tab. If its value is `t', then control characters will be printed with -an up-arrow, for example `^A'. - - If its value is not `t' and not `nil', then characters whose code is -greater than 160 (that is, the space character (32) with its high bit -set) will be assumed to be printable, and will be displayed without -alteration. This is the default when running under X Windows, since -XEmacs assumes an ISO/8859-1 character set (also known as "Latin1"). -The `ctl-arrow' variable may also be set to an integer, in which case -all characters whose codes are greater than or equal to that value will -be assumed to be printable. - - Altering the value of `ctl-arrow' makes it local to the current -buffer; until that time, the default value is in effect. *Note -Locals::. - - Normally, a tab character in the buffer is displayed as whitespace -which extends to the next display tab stop position, and display tab -stops come at intervals equal to eight spaces. The number of spaces -per tab is controlled by the variable `tab-width', which is made local -by changing it, just like `ctl-arrow'. Note that how the tab character -in the buffer is displayed has nothing to do with the definition of - as a command. - - If you set the variable `selective-display-ellipses' to `nil', the -three dots at the end of a line that precedes invisible lines do not -appear. There is no visible indication of the invisible lines. This -variable becomes local automatically when set. - - -File: xemacs.info, Node: Search, Next: Fixit, Prev: Display, Up: Top - -Searching and Replacement -************************* - - Like other editors, Emacs has commands for searching for occurrences -of a string. The principal search command is unusual in that it is -"incremental": it begins to search before you have finished typing the -search string. There are also non-incremental search commands more like -those of other editors. - - Besides the usual `replace-string' command that finds all -occurrences of one string and replaces them with another, Emacs has a -fancy replacement command called `query-replace' which asks -interactively which occurrences to replace. - -* Menu: - -* Incremental Search:: Search happens as you type the string. -* Non-Incremental Search:: Specify entire string and then search. -* Word Search:: Search for sequence of words. -* Regexp Search:: Search for match for a regexp. -* Regexps:: Syntax of regular expressions. -* Search Case:: To ignore case while searching, or not. -* Replace:: Search, and replace some or all matches. -* Other Repeating Search:: Operating on all matches for some regexp. - - -File: xemacs.info, Node: Incremental Search, Next: Non-Incremental Search, Prev: Search, Up: Search - -Incremental Search -================== - - An incremental search begins searching as soon as you type the first -character of the search string. As you type in the search string, Emacs -shows you where the string (as you have typed it so far) is found. -When you have typed enough characters to identify the place you want, -you can stop. Depending on what you do next, you may or may not need to -terminate the search explicitly with a . - -`C-s' - Incremental search forward (`isearch-forward'). - -`C-r' - Incremental search backward (`isearch-backward'). - - `C-s' starts an incremental search. `C-s' reads characters from the -keyboard and positions the cursor at the first occurrence of the -characters that you have typed. If you type `C-s' and then `F', the -cursor moves right after the first `F'. Type an `O', and see the -cursor move to after the first `FO'. After another `O', the cursor is -after the first `FOO' after the place where you started the search. -Meanwhile, the search string `FOO' has been echoed in the echo area. - - The echo area display ends with three dots when actual searching is -going on. When search is waiting for more input, the three dots are -removed. (On slow terminals, the three dots are not displayed.) - - If you make a mistake in typing the search string, you can erase -characters with . Each cancels the last character of the -search string. This does not happen until Emacs is ready to read -another input character; first it must either find, or fail to find, -the character you want to erase. If you do not want to wait for this -to happen, use `C-g' as described below. - - When you are satisfied with the place you have reached, you can type - (or ), which stops searching, leaving the cursor where the -search brought it. Any command not specially meaningful in searches -also stops the search and is then executed. Thus, typing `C-a' exits -the search and then moves to the beginning of the line. is -necessary only if the next command you want to type is a printing -character, , , or another control character that is special -within searches (`C-q', `C-w', `C-r', `C-s', or `C-y'). - - Sometimes you search for `FOO' and find it, but were actually -looking for a different occurance of it. To move to the next occurrence -of the search string, type another `C-s'. Do this as often as -necessary. If you overshoot, you can cancel some `C-s' characters with -. - - After you exit a search, you can search for the same string again by -typing just `C-s C-s': the first `C-s' is the key that invokes -incremental search, and the second `C-s' means "search again". - - If the specified string is not found at all, the echo area displays -the text `Failing I-Search'. The cursor is after the place where Emacs -found as much of your string as it could. Thus, if you search for -`FOOT', and there is no `FOOT', the cursor may be after the `FOO' in -`FOOL'. At this point there are several things you can do. If you -mistyped the search string, correct it. If you like the place you have -found, you can type or some other Emacs command to "accept what -the search offered". Or you can type `C-g', which removes from the -search string the characters that could not be found (the `T' in -`FOOT'), leaving those that were found (the `FOO' in `FOOT'). A second -`C-g' at that point cancels the search entirely, returning point to -where it was when the search started. - - If a search is failing and you ask to repeat it by typing another -`C-s', it starts again from the beginning of the buffer. Repeating a -failing backward search with `C-r' starts again from the end. This is -called "wrapping around". `Wrapped' appears in the search prompt once -this has happened. - - The `C-g' "quit" character does special things during searches; just -what it does depends on the status of the search. If the search has -found what you specified and is waiting for input, `C-g' cancels the -entire search. The cursor moves back to where you started the search. -If `C-g' is typed when there are characters in the search string that -have not been found--because Emacs is still searching for them, or -because it has failed to find them--then the search string characters -which have not been found are discarded from the search string. The -search is now successful and waiting for more input, so a second `C-g' -cancels the entire search. - - To search for a control character such as `C-s' or or , -you must quote it by typing `C-q' first. This function of `C-q' is -analogous to its meaning as an Emacs command: it causes the following -character to be treated the way a graphic character would normally be -treated in the same context. - - To search backwards, you can use `C-r' instead of `C-s' to start the -search; `C-r' is the key that runs the command (`isearch-backward') to -search backward. You can also use `C-r' to change from searching -forward to searching backwards. Do this if a search fails because the -place you started was too far down in the file. Repeated `C-r' keeps -looking for more occurrences backwards. `C-s' starts going forward -again. You can cancel `C-r' in a search with . - - The characters `C-y' and `C-w' can be used in incremental search to -grab text from the buffer into the search string. This makes it -convenient to search for another occurrence of text at point. `C-w' -copies the word after point as part of the search string, advancing -point over that word. Another `C-s' to repeat the search will then -search for a string including that word. `C-y' is similar to `C-w' but -copies the rest of the current line into the search string. - - The characters `M-p' and `M-n' can be used in an incremental search -to recall things which you have searched for in the past. A list of -the last 16 things you have searched for is retained, and `M-p' and -`M-n' let you cycle through that ring. - - The character `M-' does completion on the elements in the -search history ring. For example, if you know that you have recently -searched for the string `POTATOE', you could type `C-s P O M-'. -If you had searched for other strings beginning with `PO' then you -would be shown a list of them, and would need to type more to select -one. - - You can change any of the special characters in incremental search -via the normal keybinding mechanism: simply add a binding to the -`isearch-mode-map'. For example, to make the character `C-b' mean -"search backwards" while in isearch-mode, do this: - - (define-key isearch-mode-map "\C-b" 'isearch-repeat-backward) - - These are the default bindings of isearch-mode: - -`DEL' - Delete a character from the incremental search string - (`isearch-delete-char'). - -`RET' - Exit incremental search (`isearch-exit'). - -`C-q' - Quote special characters for incremental search - (`isearch-quote-char'). - -`C-s' - Repeat incremental search forward (`isearch-repeat-forward'). - -`C-r' - Repeat incremental search backward (`isearch-repeat-backward'). - -`C-y' - Pull rest of line from buffer into search string - (`isearch-yank-line'). - -`C-w' - Pull next word from buffer into search string - (`isearch-yank-word'). - -`C-g' - Cancels input back to what has been found successfully, or aborts - the isearch (`isearch-abort'). - -`M-p' - Recall the previous element in the isearch history ring - (`isearch-ring-retreat'). - -`M-n' - Recall the next element in the isearch history ring - (`isearch-ring-advance'). - -`M-' - Do completion on the elements in the isearch history ring - (`isearch-complete'). - - Any other character which is normally inserted into a buffer when -typed is automatically added to the search string in isearch-mode. - -Slow Terminal Incremental Search --------------------------------- - - Incremental search on a slow terminal uses a modified style of -display that is designed to take less time. Instead of redisplaying -the buffer at each place the search gets to, it creates a new -single-line window and uses that to display the line the search has -found. The single-line window appears as soon as point gets outside of -the text that is already on the screen. - - When the search is terminated, the single-line window is removed. -Only at this time the window in which the search was done is -redisplayed to show its new value of point. - - The three dots at the end of the search string, normally used to -indicate that searching is going on, are not displayed in slow style -display. - - The slow terminal style of display is used when the terminal baud -rate is less than or equal to the value of the variable -`search-slow-speed', initially 1200. - - The number of lines to use in slow terminal search display is -controlled by the variable `search-slow-window-lines'. Its normal -value is 1. - - -File: xemacs.info, Node: Non-Incremental Search, Next: Word Search, Prev: Incremental Search, Up: Search - -Non-Incremental Search -====================== - - Emacs also has conventional non-incremental search commands, which -require you type the entire search string before searching begins. - -`C-s STRING ' - Search for STRING. - -`C-r STRING ' - Search backward for STRING. - - To do a non-incremental search, first type `C-s ' (or `C-s -C-m'). This enters the minibuffer to read the search string. -Terminate the string with to start the search. If the string is -not found, the search command gets an error. - - By default, `C-s' invokes incremental search, but if you give it an -empty argument, which would otherwise be useless, it invokes -non-incremental search. Therefore, `C-s ' invokes non-incremental -search. `C-r ' also works this way. - - Forward and backward non-incremental searches are implemented by the -commands `search-forward' and `search-backward'. You can bind these -commands to keys. The reason that incremental search is programmed to -invoke them as well is that `C-s ' is the traditional sequence of -characters used in Emacs to invoke non-incremental search. - - Non-incremental searches performed using `C-s ' do not call -`search-forward' right away. They first check if the next character is -`C-w', which requests a word search. *Note Word Search::. - - -File: xemacs.info, Node: Word Search, Next: Regexp Search, Prev: Non-Incremental Search, Up: Search - -Word Search -=========== - - Word search looks for a sequence of words without regard to how the -words are separated. More precisely, you type a string of many words, -using single spaces to separate them, and the string is found even if -there are multiple spaces, newlines or other punctuation between the -words. - - Word search is useful in editing documents formatted by text -formatters. If you edit while looking at the printed, formatted -version, you can't tell where the line breaks are in the source file. -Word search, allows you to search without having to know the line -breaks. - -`C-s C-w WORDS ' - Search for WORDS, ignoring differences in punctuation. - -`C-r C-w WORDS ' - Search backward for WORDS, ignoring differences in punctuation. - - Word search is a special case of non-incremental search. It is -invoked with `C-s C-w' followed by the search string, which must -always be terminated with another . Being non-incremental, this -search does not start until the argument is terminated. It works by -constructing a regular expression and searching for that. *Note Regexp -Search::. - - You can do a backward word search with `C-r C-w'. - - Forward and backward word searches are implemented by the commands -`word-search-forward' and `word-search-backward'. You can bind these -commands to keys. The reason that incremental search is programmed to -invoke them as well is that `C-s C-w' is the traditional Emacs -sequence of keys for word search. -