www.delorie.com/gnu/docs/elisp-manual-21/elisp_574.html   search  
Buy the book!

GNU Emacs Lisp Reference Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

34.5 Search and Replace

Function: perform-replace from-string replacements start end query-flag regexp-flag delimited-flag &optional repeat-count map
This function is the guts of query-replace and related commands. It searches for occurrences of from-string in the text between positions start and end and replaces some or all of them. If start is nil, point is used instead, and the buffer's end is used for end.

If query-flag is nil, it replaces all occurrences; otherwise, it asks the user what to do about each one.

If regexp-flag is non-nil, then from-string is considered a regular expression; otherwise, it must match literally. If delimited-flag is non-nil, then only replacements surrounded by word boundaries are considered.

The argument replacements specifies what to replace occurrences with. If it is a string, that string is used. It can also be a list of strings, to be used in cyclic order.

If replacements is a cons cell, (function . data), this means to call function after each match to get the replacement text. This function is called with two arguments: data, and the number of replacements already made.

If repeat-count is non-nil, it should be an integer. Then it specifies how many times to use each of the strings in the replacements list before advancing cyclicly to the next one.

If from-string contains upper-case letters, then perform-replace binds case-fold-search to nil, and it uses the replacements without altering the case of them.

Normally, the keymap query-replace-map defines the possible user responses for queries. The argument map, if non-nil, is a keymap to use instead of query-replace-map.

Variable: query-replace-map
This variable holds a special keymap that defines the valid user responses for query-replace and related functions, as well as y-or-n-p and map-y-or-n-p. It is unusual in two ways:

Here are the meaningful "bindings" for query-replace-map. Several of them are meaningful only for query-replace and friends.

Do take the action being considered--in other words, "yes."

Do not take action for this question--in other words, "no."

Answer this question "no," and give up on the entire series of questions, assuming that the answers will be "no."

Answer this question "yes," and give up on the entire series of questions, assuming that subsequent answers will be "no."

Answer this question "yes," but show the results--don't advance yet to the next question.

Answer this question and all subsequent questions in the series with "yes," without further user interaction.

Move back to the previous place that a question was asked about.

Enter a recursive edit to deal with this question--instead of any other action that would normally be taken.

Delete the text being considered, then enter a recursive edit to replace it.

Redisplay and center the window, then ask the same question again.

Perform a quit right away. Only y-or-n-p and related functions use this answer.

Display some help, then ask again.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster   donations   bookstore     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003