Go to the first, previous, next, last section, table of contents.

Query Replace (利用者に質問しながらの置換)

M-% string RET newstring RET
M-x query-replace RET string RET newstring RET
stringのいくつかをnewstringで置換します.
M-x query-replace-regexp RET regexp RET newstring RET
正規表現regexpにマッチしたもののいくつかをnewstringで置換し ます.

全部の`foo'ではなくいくつかを`bar'に置換したい場合,普通の replace-stringは使用できません.代わりに,M-% (query-replace)を使用します.このコマンドは`foo'を1つ1つ見つ けて表示し,置換すべきかどうか尋ねてきます.query-replaceに数引数 を与えたときは,単語境界で囲まれた文字列だけが,対象になります.

質問をするという機能の他は,query-replacereplace-stringと,query-replace-regexpreplace-regexpと全く同様に機能します.

stringが見つかるかregexpにマッチしたとき,次のコマンドを入 力することができます.

SPC
stringnewstringで置換します.case-replaceが non-nil(デフォルト)である場合にはreplace-stringと同様に大 文字と小文字を保存します.
DEL
置換せずに先へ進みます.
, (Comma)
この文字列を置換し表示します.そして,その位置でもう1文字入力することが できるようになります.ただし,すでに置換は行なわれているので,DELSPCは同じ意味になります.ここでC-r(以降を参照)を入力して置 換されたテキストを変えることができます.またC-x uを入力して置換を 取り消すこともできます.このときはquery-replaceから抜けてしまうの で,さらに置換を行ないたいときは,C-x ESCを使う必要がありま す(see section ミニバッファコマンドの繰り返し).
ESC
これ以上置換せずに終了します.
. (ピリオド)
現在の文字列を置換してから終了します.
!
これからは質問することなしに,残っている文字列をすべて置換します.
^
誤って変換してしまったときに前の位置へ戻ります.この位置はマークリングか ら得ます.^は続けて入力することはできません.query-replace 実行中は,1つ前に置換した場所だけが記憶されているからです.
C-r
単にnewstringだけで置換するのではなく,さらに編集が必要な場合,こ れにより再帰編集レベルに入ります.編集を終えたら,C-M-cで再帰編集 レベルを終了すれば先へ進みます.See section 再帰編集レベル.
C-w
stringを削除して,C-rと同様に再帰編集レベルに入ります.再帰 編集で,削除されたstringを置き換えるテキストを挿入します.これが終っ たら,C-M-cで終了すると先へ進みます.
C-l
画面を再表示して,もう一度コマンドを入れられるようにします.
C-h
これらの入力の要約を表示した後,もう一度コマンドを入れられるようにします.

これ以外の文字を入力するとquery-replaceは終了し,その文字はコマ ンドとして実行されます.query-replaceを再実行するには,C-x ESCを用います.query-replaceは引数を読むためにミニバッファ を用いるので,これによって,query-replaceが繰り返されます. See section ミニバッファコマンドの繰り返し.


Go to the first, previous, next, last section, table of contents.