Previous: , Up: Top   [Contents][Index]

10 Searching and Replacing

Emacs provides commands for searching for occurrences of a particular string. The search is incremental i.e. it begins even before you complete typing the whole string. All searches in Emacs ignore the case of the text they are searching, i.e. if you are searching for "String", then "string" will also be one of the selections. If you want a case sensitive search select the Case Sensitive Search from the Option menu. You can also set the variable case-fold-search to nil for making searches case-sensitive. For information on setting variables, See Setting Variables. The two commands for searching for strings in SXEmacs are:


This command will prompt you for a string to search :


If you type "myname" as the string to be searched, then Emacs will start searching for "m", "my", "myn", etc as you go on typing the whole string in the forward direction. The cursor will be on the matching string which has been found so far. If you find the correct match just hit RET or type C-f or C-b to set the cursor’s position. If you find a matching string "myname" but you were looking for a different occurrence of it, use C-s again. If the search is unable to find the string, it will give you an error message.


This command will perform an incremental search in the backward direction. It will prompt you for a string name:

I-search backward:

After you start typing the string name, it will search for the string in the same fashion as it does for C-s except that it will search in the backward direction. If it cannot find the string name, it will give you an error message.

If you make a mistake while typing the string names when you use the above commands, you can use the DEL key to erase characters. Each DEL will erase the last character. At any time if you want to quit the search, just type C-g.

To do a non-incremental search i.e. to start the search only after you have typed the whole string you can use the following commands:

C-s RET string RET

This command will search for the specified string in the forward direction and will give an error message if the string is not found.

C-r RET string RET

This command will search for the specified string in the backward direction.

For information on how Emacs searches for words and regular expressions, See Search in SXEmacs User’s Manual.

To replace all occurrences of a string in Emacs, you can use the following command:

M-x replace-string

After you type M-x replace-string, you will be prompted for a string name to replace:

Replace string:

After you type in a string name, for example "FOO" and press RET, you will see another prompt:

Replace string FOO with:

Now type the string which you want to replace "FOO" with and press RET. After all the occurrences are replaced you will see the message "Done" in the echo area. If you want only some occurrences of the string to be replaced, use M-x query-replace RET <string> RET <newstring> RET. For more information, See Query Replace in SXEmacs User’s Manual.

SXEmacs also provides a utility for checking spellings. Use M-x ispell-buffer to check for spellings in the whole buffer. You can also check the spelling of a word or a region. You can use menus to check for spellings:

Evaluate the expression (load "big-menubar"). To evaluate this expression you need to hit the META or the ESC key twice and type in the expression in the echo area before hitting RET. You will get an extensive menubar. Select the Spell Check menu item from the Utilities menu for checking spellings.

Previous: , Up: Top   [Contents][Index]