GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Overview-of-Emerge.html ・ emacs-doc.conao3.com

30.6.1 Emergeの概要

Emergeを起動するには、以下の4つのコマンドのいずれかを実行してください:

M-x emerge-files

指定した2つのファイルをマージする。

M-x emerge-files-with-ancestor

共通の祖先を参照して、指定した2つのファイルをマージする。

M-x emerge-buffers

2つのバッファをマージする。

M-x emerge-buffers-with-ancestor

第3のバッファにある共通の祖先を参照して、2つのバッファをマージする。

Emergeコマンドは、2つのファイルまたはバッファを比較し、その結果を3つのバッファに表示します。具体的には、各入力テキスト用のバッファ(AバッファとBバッファ)と、マージが行われるバッファ(マージバッファ)です。マージバッファには、相違点だけでなく、マージ後の全文が表示されます。2つの入力テキストが異なる箇所については、どちらをマージバッファに含めるかを選択できます。

既存のバッファから入力を受け取る Emerge コマンドは、それらのバッファがナローイングされている場合、アクセス可能な部分のみを使用します。ナローイングを参照してください。

統合対象の2つのテキストがともに派生した共通祖先バージョンが存在する場合、Emergeはそれを用いてどちらの代替案が正しいかを推測できます。現在のバージョンのいずれかが祖先バージョンと一致している場合、Emergeはもう一方の現在のバージョンは意図的な変更であり、統合後のバージョンにも保持すべきであると判断します。共通祖先テキストを指定したい場合は、‘with-ancestor’コマンドを使用してください。これらのコマンドは、バリアントA、バリアントB、および共通祖先という3つのファイル名またはバッファ名を読み込みます。

比較が完了し、バッファの準備が整うと、インタラクティブなマージが開始されます。マージバッファに専用のマージコマンドを入力することで、マージを制御できます(マージコマンドを参照)。入力テキスト間の差分が検出されるたびに、どちらを保持するかを選択するか、あるいは両方をまとめて編集することができます。

マージバッファでは、こうした選択を行うためのコマンドを備えた特殊なメジャーモード「Emergeモード」を使用します。ただし、通常のEmacsコマンドでバッファを編集することも可能です。

いかなる時点においても、Emergeの注目は、選択された差異と呼ばれる特定のひとつの差異に向けられている。この差異は、3つのバッファにおいて次のように区別される:

vvvvvvvvvvvvvvvvvvvv
text that differs
^^^^^^^^^^^^^^^^^^^^

Emergeではすべての差分が順次表示され、モードラインには常に選択された差分の番号が表示されます。

通常、マージバッファはテキストのAバージョンで初期化されます。ただし、差分のAバージョンが共通祖先と一致する場合は、その差分については当初Bバージョンが優先されます。

Emergeを終了すると、マージ済みのテキストがマージバッファに残されます。その時点で、C-x C-w を使用してファイルに保存できます。emerge-files または emerge-files-with-ancestor に数値引数を指定すると、ミニバッファを使用して出力ファイル名を読み取ります。(これが、これらのコマンドが読み取る最後のファイル名となります。)その後、Emergeを終了すると、マージ済みのテキストが出力ファイルに保存されます。

通常、Emergeコマンドは終了時に出力バッファをファイルに保存します。C-]でEmergeを中断した場合、Emergeコマンドは出力バッファを保存しませんが、必要に応じて手動で保存することも可能です。