Emacs ediffでファイルの一部分を相互比較

ファイル全部じゃなくて選択した部分だけ比較したいって時に、
Emacsに標準でついてるediffが便利なのに気づいた。
用途としては、あるクラスの、あるメソッドだけを相互に比較したいとか。
その名も
  • ediff-regions-wordwise
  • ediff-regions-linewise
ediff-regions-wordwiseはword単位、
ediff-regions-linewiseは行単位で比較結果を表示してくれる。

使い方は簡単。
まず M-x ediff-regions-wordwise とした後、比較対象のバッファを2つ指定する。
(事前に比較するファイルを開いておく必要あり)
その後、それぞれのバッファが開くので、コピーするときと同じ要領で C-SPACE と M-w で比較対象となる部分を選択。
選択後は C-M-c を押す。

欲しかったけど意外となかった機能じゃないかな。
地味な機能かもしれないけど、これでorg-mode以外にEmacsから離れられない理由ができてしまった。

Comment

  1. Saxman
    2007-11-15 Thu 21:53

    C-nを連打してしまいますよ?(笑
    (C-pも連打してしまうことがあるのは病気でしょうか・・・?)

    ediff-regions-linewiseは、ほんと便利そうですね。
    実際インデントが異なってるだけでステートメントは差異がない場合も普通のdiffは拾うのに・・。
    さすがはEmacsと言った所でしょうか。

    私はhowmが手放せなかったのですが、最近org-mode勉強中。ご教授お願いします。

  2. tma
    2007-11-15 Thu 22:43

    Excelとかで新規画面を大量に開いてたり、印刷ダイアログをやたらと開くのは、
    Emacs使いの宿命ですかね。。。。

    org-modeはタスク管理や議事録に大活躍です。
    最近はいろいろな機能追加についていけなくなっちゃってますが。