Next: , Previous: , Up: ファイルの処理   [Contents][Index]


19.9 ファイルの比較

コマンドM-x diffは、ミニバッファーを使って2つのファイル名の入力を求め、*diff*という名前のバッファーに、2つのファイルの違いを表示します。これはdiffプログラムに、変数diff-switchesで指定されたオプションを指定して実行することにより機能します。diff-switchesには文字列を指定します。デフォルトはunified context diff形式を指定する"-u"です。プログラムについての情報は、Diff in Comparing and Merging Filesを参照してください。

diffコマンドの出力は、Diffモードと呼ばれるメジャーモードを使って表示されます。Diffモードを参照してください。

(より高機能な)代替物はM-x ediffです(Ediff in The Ediff Manualを参照)。

コマンドM-x diff-backupは指定したファイルと、そのファイルの一番最近のバックアップを比較します。バックアップファイル名を指定したときは、diff-backupは指定されたバックアップファイルと、それの元となるファイルを比較します。それ以外の点はM-x diffと同じです。

コマンドM-x diff-buffer-with-fileは指定されたバッファーと、それに対応するファイルを比較します。これはバッファーを保存すると、ファイルにどのような変更がされるかを表示します。

コマンドM-x diff-buffersは指定した2つのバッファーのコンテンツを比較します。

コマンドM-x compare-windowsはカレントウィンドウと、カレントウィンドウの前に選択されていたウィンドウを比較します(Emacsのウィンドウについての詳細は複数ウィンドウを参照)。比較はそれぞれのウィンドウのポイント位置から、それぞれのバッファーのポイントの初期位置を、対応するバッファーのマークリング(マークリングを参照)にpushした後に開始されます。それから各ウィンドウのポイントを1文字ずつ前方に移動していきます。文字がマッチしなくなるとコマンドは終了します。

コマンドを開始したとき、2つのウィンドウのポイントの後ろのテキストがマッチしない場合、M-x compare-windowsは2つのウィンドウでマッチするテキストが見つかるまでポイントを進めてから終了します。したがってM-x compare-windowsを繰り返し使うと(see コマンドの繰り返しを参照)、毎回1つのマッチする範囲をスキップするか、次の開始点を探します。

数引数を指定すると、compare-windowsは空白文字の違いを無視します。変数compare-ignore-caseが非nilの場合、大文字小文字の違いを無視して比較します。変数compare-ignore-whitespaceが非nilの場合、compare-windowsはデフォルトでは空白文字の違いを無視しますが、数引数が指定されたときは、その回のコマンド呼び出しでは、これをオフにします。

M-x smerge-modeを使って、Smergeモードに切り替えることができます。これはdiff3プログラムの出力を編集するマイナーモードです。これは通常、バージョン管理システムと、バージョン管理システムの外でのupdateをマージするとき、ファイルへの変更が競合して失敗した結果です。Smergeモードは特定の変更を選択することにより、競合を解決するコマンドを提供します。

ファイルをマージする強力なインターフェースを提供するEmerge機能については、 Emergeでのファイルのマージを参照してください。