新Emacsの強力な置換機能を使いこなす - (page 5)

後藤大地(オングス)

2007-07-01 00:00

応用編:検索結果を別のバッファに記録する

面白い例として、検索結果を別バッファにまとめる例を紹介したい。まずリスト18のように関数を定義する。あとはリスト19のように置換対象を選んで、リスト20のように定義した関数を使えばいい。この例では\,(put-new-buffer \1 "buffername")のようにすると送信するバッファを選択できる。

リスト18 指定されたバッファにテキストを送る関数

(defun put-new-buffer 
  (text &optional name) 
        (setq curbuf (current-buffer))
        (if (eq name nil) (setq name "*replace result*"))
        (set-buffer (get-buffer-create name))
        (end-of-buffer)
        (insert text)
        (insert "\n")
        (set-buffer curbuf)
        text)

リスト19 一致対象

Query replace regexp: \(.*\)

リスト20 結果を別のバッファに送信

Query replace regexp with: \,(put-new-buffer \1)

自分で関数を定義してreplace-regexpを使うという応用パターンだ。あらかじめ関数を組んでおけるため、複雑な処理も実行できる。なれてしまえばかなり強力なツールになることは間違いないところだ。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

マイナンバーカードの利用状況を教えてください

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]