XEmacsのコマンド・メモ(検索・置換)

XEmacs(Emacs)での検索・置換のメモ。

検索

★インクリメント検索
  • C-s … 文末に向かって検索
  • C-r … 文頭に向かって検索

「C-s」のsはsearch、「C-r」のrはsの1つ前の文字、と覚える。


「C-s」を押すと、「I-search:」と出るので、ここに検索したい文字列を入力する。
ちなみに、ここに「C-j」を入力すると、改行にマッチさせることが出来る。

★非インクリメント検索
  • C-s リターン … 文末に向かって検索
  • C-r リターン … 文頭に向かって検索


インクリメント検索の時に、何も文字を入れないでリターンキーを押すと、非インクリメント検索になる。

★単語検索
  • C-s リターン C-w … 文末に向かって検索
  • C-r リターン C-w … 文頭に向かって検索

非インクリメント検索で、「C-w」を押すと単語検索になる。

例えば、「foobar foo bar」と言う文章があって、「foo」を単語検索したら、「foobar」にはマッチせず、「foo」だけにマッチする。

正規表現で検索
  • M-C-s … 文末に向かって検索
  • M-C-r … 文頭に向かって検索

正規表現検索と同様に、インクリメント、非インクリメント、単語検索が出来る。

置換

★対話的置換
  • M-% … 対話的置換
  • M-C-% … 対話的置換(正規表現

カーソル位置から文末に向かって置換する。


置換前と置換後の文字列を入力すると、検索候補の文字列に移動して、置換するか聞いてくるので、置換するときは「y」か「スペース」、置換しないなら「n」か「DEL」を押す。
他にも次の操作が出来る。

  • 「!」 … 全部置換
  • 「,」 … 文字列を置換するが、位置を移動しない
  • 「^」 … 前の置換候補の位置に移動する
  • 「C-r」 … リカーシブエディット

リカーシブエディットは、置換を一時中断して編集モードに戻る。
リカーシブエディットを終了するには、「M-x exit-recursive-edit」と入力する。

★一括置換
  • M-x replace-string … 一括置換
  • M-x replace-regexp … 一括置換(正規表現

1個ずつ置換するのが面倒ならこれを使う。

★置換範囲を選択

領域指定を使うと、置換範囲を選択出来る。
領域指定は下記記事を参照。
http://d.hatena.ne.jp/SPR/20070204

その他

  • M-x occur正規表現にマッチする箇所をリスト形式にして表示

リスト内で(「C-x o」でウインドウ間を移動出来る)「C-c C-c」を押すとジャンプ出来る。

  • M-x flush-lines正規表現にマッチする箇所を削除
  • M-x keep-lines正規表現にマッチする箇所以外を削除