15.4.2.5 置換

置換にもいくつか方法があります.場合によって使い分けて下さい.ここでも前項の検索で使用したalice.txtを使用します.

ここでは「Alice」を「Denny」に変換してみましょう.

一つ一つ置換

変換の候補全てに対して,本当に変換するかどうか選択ができます.

上記はどちらでも同じなので,ポイントが本文の先頭にある状態で,どちらでもすきな方を入力して下さい.するとミニバッファが以下のようになります.ここでまず置換される文字列 (ここでは‘Alice’) と最後にenterを入力します.

[置換される文字列を入力する図]

すると次はミニバッファが以下のようになるので,今度は置き換える新しい文字列 (ここでは‘Denny’) と最後にenterを入力します.

[置き換える新しい文字列を入力する図]

すると本文先頭の‘Alice’が目立つように色が付き, ミニバッファが以下のようになります.

[置き換えるかどうか聞かれている図]

これはEmacsが「本当に置き換えますか?」ということを聞いているので, 以下のどれかを入力して動作を決定します. 実際には選択肢がもう少しありますが,とりあえずは以下の選択で十分です.

キー動作
y もしくは space置換し,次の置換候補に飛ぶ
n もしくは bs置換せず,次の置換候補に飛ぶ
q もしくは enter置換せず,ただちに置換モードを終了
, (コンマ)置換し,次の命令を待機する (次の置換候補には飛ばない)
. (ピリオド)置換し,置換モードを終了
!現在以降の候補を,問い合わせをせずに置換
^一つ前の候補に戻る
?これらの操作法を表示する

そして最終的に置換された文字列の数がミニバッファに表示されます.

[最後まで置換した図]

以上のことを利用し‘Alice’をすべて‘Denny’に置換して下さい.

無条件に置換

もし全て文字列を置き換える前提で,一つ一つ置換していくのは面倒です. そこで無条件に一括置換を行いましょう. ここでは‘she’を全て‘he’に置き換えます.

ポイントが先頭にある状態で上記コマンドを入力して下さい. するとミニバッファが以下のようになるので, 置換される文字列 (ここでは‘she’) と最後にenterを入力します.

[置換される文字列を入力する図]

すると次はミニバッファが以下のようになるので, 今度は置き換える新しい文字列 (ここでは‘he’) と最後にenterを入力します.

[置き換える新しい文字列を入力する図]

するとあっという間に‘she’が全て‘he’に置換され, 変換した文字列の数がミニバッファに表示されます.

[最後まで置換した図]

練習

テキスト内の‘her’を女性である Alice から男性である Denny に対応したものに置換しましょう.

ヒント: