Emacsの操作の基本:検索と置換

スポンサーリンク

Emacsの操作の基本です。この記事では、検索と置換の操作について書きます。

Emacsでの検索と置換操作は、コピー&ペーストと同様に、マウスとメニューによる操作でも可能です。

ここでは、キーボードによる操作について説明します。

スポンサーリンク

Emacsにおける検索

1つづつ検索

検索の操作は以下です。

  1. Ctrl-s を押す。
  2. Emacs画面の下の方で、I-search: と表示されたところに、検索する文字列を打ち込む。
  3. 検索する文字列を打ち込んだ後は、 見つけたい所にいくまでCtrl-sを何度か押す。
  4. 検索を終了するときは、Ctrl-gを押す。

Crtl-sとは、Ctrlキーを押しながらsキーを押すという意味です。以下同様です。

2のステップでは、文字を打つ度に、前方一致で引っかかるところまで自動的に飛ばしてくれます。これをインクリメンタル検索といいます。

このCtrl-sによる検索では、Ctrl-sを押すときのカーソル位置よりも後ろの方に検索をかけていきます。

スポンサーリンク

反対に、カーソル位置よりも前の方に検索をかけたい場合は、Ctrl-sの代わりにCtrl-rを押します。このとき、上記2のステップでI-serach:と表示されたところが、I-serach backward:と表示されると思います。

Ctrl-rを何度か押すと、前の方(上の方)に順番に検索されていくことがわかると思います。

まとめて検索

1つのファイルの中、検索したい文字列をまとめて(1回で)検索したこともあると思います。

Emacsでこのような検索をしたいときは、以下の操作を行います。

  1. M-x を押す。(Metaキーを押しながらxキーを押す)
  2. 続いて、grep と入力してEnterを押す。
  3. Emacsの画面下部に、Run grep で始まる行が現れるので、この後に検索したい文字列、空白、今開いているファイル名の順に入力する。

これは、Emacs上でgrepというコマンドを実行しているのですが、この検索結果がEmacsのバッファ上に表示されるのがポイントです。

例えば、sample1.txtというテキストファイル上のaaaという文字列を検索したとしましょう。すると、Emacsの画面が上下に2分割され、下半分の領域に

などと表示されると思います。これはsample_1.txtというファイルの1, 4, 7行目にaaaが見つかったことを表しています。

カーソルを、上記のなかでアンダーバーがかかっている所(sample_1.txtの部分で、どの文字でもよい)に合わせてEnterを押してみてください。すると、その行にジャンプしてくれるはずです。

これが、Emacs上でgrepを使うときの、便利なところです。

grepの後に入力するファイル名は、ここでは編集中のファイル名にしましたが、これはまったく別のファイル名でも構いません。

そのときは、ちゃんとそのファイルを開いて、該当行にジャンプしてくれます。

grep で使用したときに表示される下半分の画面(バッファといいます。)は、その画面内のどこかにカーソルを合わせ、Ctrl-x k (Ctrlキーを押しながらxキー, Ctrlキーを離してkキーを押す)とやり、続けてEnterを押せば終了してくれます。

ここでカーソルを合わせるのは、慣れないうちはマウスで選択して合わせればよいです。慣れれば、バッファ間をキー操作で移動することができるようになりますが、それはまた別の記事で説明します。

Emacsにおける置換

置換も、エディタでよく行う操作の一つです。

1つづつ置換

まず、1文字列づつ置換する方法です。

  1. M-%を押す
  2. 下部にQuery-replace: と表示されたら、置換する対象の文字列を入力し、Enterキーを押す。
  3. 続いて、置換後の文字列を入力し、Enterキーを押す。
  4. 一つづつ置換を行うかどうかを聞いてくるので、置換する場合はyキー, 置換しない場合はnキーを押す。

M-%とは、具体的にはMetaキーを押しながら、Shiftキー及び数字の5キー(%が刻印されているはず)を押す操作です。

この操作では、置換したい文字列を一つづつ置換していきます。

置換を途中で止める場合は、Ctrl-gを押します。

まとめて置換

たくさんの文字列を一挙に置換したいときには、上記の方法では面倒な場合があります。そのときは、次の操作を行うことで一括置換できます。

  1. M-xを押す
  2. 続いて、replace-strings と打ち込む
  3. 置換対象の文字列を入力し、Enterキーを押す。
  4. 置換後の文字列を入力し、Enterキーを押す。

これで一括置換が行われます。

replace-strinsと打ち込むのは面倒かもしれませんが、TABキーを押すと補完してくれますので、試しながらコツをつかんでください。

また、.emacsにショートカットキーを登録しておく方法もあります。これは別の記事で説明します。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする