新Emacsの強力な置換機能を使いこなす

後藤大地(オングス) 2007年07月01日 00時00分

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

6年ぶりの大きなアップデートとなったEmacs 22.1、CVS先端の開発バージョンを使っているユーザは、なんとなく見過ごしてしまっているかもしれないが、新しい機能には便利なものが多い。ここでは、特に強化された置換機能について取り上げる。使いこなせば強力なので、是非使ってみて欲しい。

replace-regexpがプログラマブル置換へとパワーアップ

Emacsではreplace-regexpで正規表現置換ができる。現在主流となっている正規表現のスタイルはPerlに源流をおいたものが多いが、Emacsの正規表現はそれとは異なる。特に\( \)の表記などが独特だ。とはいえ、Emacsを愛しているならば、馴れるしかないだろう。書き方が違うだけで、本質的には同じことだ。

さて、22.1.xではこの正規表現置換で関数の使用がサポートされた。具体的には、正規表現のなかに、任意の処理が実行可能なLispコードを指定できる。

これまで複雑な置換をするとなると、Perlなどのスクリプト言語で置換処理を書くことが多かったと思うが、22.1.xからはEmacs内で完結できる。ここでは便宜上、この関数を「プログラマブルreplace-regexp」と呼びたい。

サンプルでつかむプログラマブルreplace-regexp - 手始めは値の比較

早速試してみよう。最初の例題は、リスト1をリスト2のようにするというものだ。

リスト1 プログラマブルreplace-regexpをためしてみる

1 2
2 2
2 1

リスト2 置換後の文字列

1 < 2
2 = 2
2 > 1
  • このエントリーをはてなブックマークに追加
関連キーワード
開発

関連ホワイトペーパー

SpecialPR

  • デジタル変革か?ゲームセットか?

    デジタルを駆使する破壊的なプレーヤーの出現、既存のビジネスモデルで競争力を持つプレイヤーはデジタル活用による変革が迫られている。これを読めばデジタル変革の全体像がわかる!

  • ビジネスの継続的な成長を促す新たなITのビジョン

    多くの企業においてITに求められる役割が、「守り」のコスト削減から「攻め」のビジネス貢献へとシフトしつつある。その中でIBMが提唱する新たなビジョンEnterprise Hybrid ITとは?