概要
vimdiffは、Vimエディタのdiffモードを活用して複数のファイルを並べて表示し、変更された部分を自動的にハイライトして表示します。ユーザーはVimの強力な編集機能をそのまま活用して差分を探索し、必要に応じて変更を容易にマージできます。
主な特徴
- サイドバイサイド(Side-by-side)または上下(Top-bottom)でのファイル比較
- 差分の自動ハイライトと同期スクロール
- 変更点の探索と選択的なマージ機能
- 最大8ファイルまでの同時比較をサポート
- Vimの全ての編集および探索機能を利用可能
主なオプション
vimdiffは基本的に 'vim -d' コマンドを呼び出すため、Vimの様々なコマンドラインオプションを活用できます。以下は、vimdiff使用時に役立つ主なオプションです。
ファイルの指定
起動設定
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`vimdiff` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
vimdiffを使用してファイルを比較し、マージする様々なシナリオを見てみましょう。
2つのファイルを比較
vimdiff file_original.txt file_modified.txt
最も基本的な使い方で、2つのファイル間の差分を視覚的に比較します。
3つのファイルを比較
vimdiff file_version1.txt file_version2.txt file_version3.txt
3つのファイルを同時に比較し、各ファイル間の差分を一目で把握できます。
起動時に特定オプションを適用
vimdiff -c 'set diffopt=filler' fileA.txt fileB.txt
vimdiffを起動する際に `diffopt` 設定で空行を埋める方式で比較を開始します。これはファイル間の行数が大きく異なる場合に便利です。
読み取り専用でファイルを比較
vimdiff -R file_old.txt file_new.txt
ファイルの内容を変更する意図がなく、単に差分だけを確認したい場合に使用します。
インストール
vimdiffはVimエディタパッケージの一部として提供されます。ほとんどのLinuxディストリビューションにはVimがデフォルトでインストールされているか、パッケージマネージャーを通じて簡単にインストールできます。
Debian/Ubuntu
aptパッケージマネージャーを使用してVimをインストールします。
- コマンド: sudo apt update && sudo apt install vim
CentOS/RHEL/Fedora
yumまたはdnfパッケージマネージャーを使用してVimをインストールします。
- コマンド (CentOS/RHEL): sudo yum install vim
- コマンド (Fedora): sudo dnf install vim
macOS
Homebrewを使用してVimをインストールします。
- コマンド: brew install vim
ヒントと注意点
vimdiffをより効率的に使用するためのヒントと注意点です。
主なVimdiff内部コマンド
vimdiffセッション内で使用できる便利なコマンドです。
- `[c` または `:diffget` (前の差分へ移動)
- `]c` または `:diffput` (次の差分へ移動)
- `dp` (diffput): 現在のバッファの変更を他のバッファに適用
- `do` (diffget): 他のバッファの変更を現在のバッファに取り込む
- `:diffupdate`: 手動で差分を更新 (ファイルを編集した後などに便利)
- `:qa` または `:qall`: 全てのdiffウィンドウを閉じて終了
スクロール同期
デフォルトでは、全てのdiffウィンドウはスクロールが同期されます。`set noscrollbind` コマンドで特定のウィンドウのスクロール同期を解除できます。再度同期するには `set scrollbind` を使用します。
Diffオプション設定 (`diffopt`)
`set diffopt=<オプション>` コマンドを使用して、diffの表示方法を細かく制御できます。例えば、`set diffopt=filler,context:3` は空行を埋め、3行のコンテキストを表示します。