XEmacs 21.2-b1
[chise/xemacs-chise.git.1] / man / new-users-guide / search.texi
1 @comment  node-name,  next,  previous,  up
2 @node Search and Replace, , Select and Move, Top
3 @chapter Searching and Replacing
4 @cindex searching
5 @cindex replace
6 @vindex case-fold-search
7
8    Emacs provides commands for searching for occurrences of a particular
9 string. The search is incremental i.e. it begins even before you
10 complete typing the whole string. All searches in Emacs ignore the case
11 of the text they are searching, i.e. if you are searching for "String",
12 then "string" will also be one of the selections. If you want a case
13 sensitive search select the @b{Case Sensitive Search} from the
14 @b{Option} menu. You can also set the variable @var{case-fold-search} to
15 @var{nil} for making searches case-sensitive. For information on setting
16 variables, @xref{Setting Variables}. The two commands for searching for
17 strings in XEmacs are: 
18
19 @table @kbd
20 @item C-s
21 @findex isearch-forward
22 @kindex C-s
23 This command will prompt you for a string to search :
24
25 @example
26 I-search:
27 @end example
28
29 @noindent
30 If you type "myname" as the string to be searched, then Emacs will start
31 searching for "m", "my", "myn", etc as you go on typing the whole
32 string in the forward direction. The cursor will be on the matching
33 string which has been found so far. If you find the correct match just
34 hit @key{RET} or type @kbd{C-f} or @kbd{C-b} to set the cursor's
35 position. If you find a matching string "myname" but you were looking
36 for a different occurrence of it, use @kbd{C-s} again. If the search is
37 unable to find the string, it will give you an error message.  
38
39 @item C-r 
40 @findex isearch-backward
41 @kindex C-r
42 This command will perform an incremental search in the backward
43 direction. It will prompt you for a string name:
44
45 @example
46 I-search backward:
47 @end example
48
49 @noindent
50 After you start typing the string name, it will search for the string in
51 the same fashion as it does for @kbd{C-s} except that it will search in
52 the backward direction. If it cannot find the string name, it will give
53 you an error message.
54 @end table
55
56    If you make a mistake while typing the string names when you use the
57 above commands, you can use the @key{DEL} key to erase characters. Each
58 @key{DEL} will erase the last character. At any time if you want to quit
59 the search, just type @kbd{C-g}. 
60
61    To do a non-incremental search i.e. to start the search only after
62 you have typed the whole string you can use the following commands:
63
64 @table @kbd
65 @item C-s RET @dfn{string} RET
66 This command will search for the specified string in the forward
67 direction and will give an error message if the string is not found. 
68
69 @item C-r RET @dfn{string} RET
70 This command will search for the specified string in the backward
71 direction.
72 @end table
73
74   For information on how Emacs searches for words and regular
75 expressions, @xref{Search,,,xemacs,XEmacs User's Manual}. 
76
77   To replace all occurrences of a string in Emacs, you can use the
78 following command: 
79 @findex replace-string
80 @example
81 M-x replace-string 
82 @end example
83
84 @noindent
85 After you type @kbd{M-x replace-string}, you will be prompted for a
86 string name to replace:
87
88 @example
89 Replace string:
90 @end example
91
92 @noindent
93 After you type in a string name, for example "FOO" and press @key{RET},
94 you will see another prompt:
95
96 @example
97 Replace string FOO with:
98 @end example
99
100 @noindent
101 Now type the string which you want to replace "FOO" with and press
102 @key{RET}. After all the occurrences are replaced you will see the
103 message "Done" in the echo area.  If you want only some occurrences of
104 the string to be replaced, use @kbd{M-x query-replace RET <string> RET
105 <newstring> RET}. For more information, @xref{Query
106 Replace,,,xemacs,XEmacs User's Manual}.
107
108    XEmacs also provides a utility for checking spellings. Use @kbd{M-x
109 ispell-buffer} to check for spellings in the whole buffer. You can also
110 check the spelling of a word or a region. You can use menus to
111 check for spellings:
112
113 @noindent
114 Evaluate the expression @code{(load "big-menubar")}. To evaluate this 
115 expression you need to hit the @key{META} or the @key{ESC} key twice and
116 type in the expression in the echo area before hitting @key{RET}. You
117 will get an extensive menubar. Select the @b{Spell Check} menu item from
118 the @b{Utilities} menu for checking spellings.