[Vim問題] Vimでファイル間の差分を表示する方法は?

この記事は約3分で読めます。

この記事では、Vimでプラグインを使わずに「ファイル間の差分を表示する」ためのコマンドについて、ご紹介します。

スポンサーリンク

[解答] diff 機能を活用する

外部コマンドを使用する必要はありません。標準機能で十分実現することができます。

コマンド vimdiff

(コマンドプロンプト/シェル)
vimdiff ファイルパス1 ファイルパス2 (ファイルパス3 ファイルパス4)
gvimdiff ファイルパス1 ファイルパス2 (ファイルパス3 ファイルパス4) 

コマンドプロンプトまたはシェルから直接ファイルを開いて、最大4つまでファイルを比較することができます。

コマンドプロンプトで4ファイルを開いた vimdiff
コマンドプロンプトで4ファイルを開いた vimdiff
gvim で4ファイルを比較
gvim で4ファイルを比較

Linuxなどでは diff コマンドが有名ですが、vimのキー操作で扱え、よりグラフィカルなのが魅力ですね。

colorscheme などの配色によりますが、差分箇所の行には明示的には表示されます。とても分かりやすく使えます。

ちなみに、次のコマンドでも同じ動作をします。

(コマンドプロンプト/シェル)
vim -d ファイルパス1 ファイルパス2 (ファイルパス3 ファイルパス4)
gvim -d ファイルパス1 ファイルパス2 (ファイルパス3 ファイルパス4)
neovim -d ファイルパス1 ファイルパス2 (ファイルパス3 ファイルパス4) 

neovim-qt.exe には -d オプションは実装されていないようです。

また次のように -o オプションを指定することで、水平分割することも可能です。

(コマンドプロンプト/シェル)
vim -o ファイルパス1 ファイルパス2 (ファイルパス3 ファイルパス4)
gvim -o ファイルパス1 ファイルパス2 (ファイルパス3 ファイルパス4)
neovim -o ファイルパス1 ファイルパス2 (ファイルパス3 ファイルパス4) 
 gvim で2ファイルを水平分割して比較
gvim で2ファイルを水平分割して比較

Vimコマンド1. diffsplit でファイル間の差分を比較する

(ノーマルモード)
:diffsplit 比較対象ファイルパス
または
:diffs 比較対象ファイルパス

このコマンドを使うと、今開いているファイル(バッファ)と指定したファイルを比較することができます。

 gvim で2ファイルを水平分割して比較
diffsplit で水平分割してファイル比較

ただ、ファイルの比較というと、先に紹介したように垂直分割した状態で比較する方が視認しやすいと思います。これは次のように実行すると、上手くファイルの比較ができます。

(ノーマルモード)
:vertical diffsplit 比較対象ファイルパス
または
:vertical diffs 比較対象ファイルパス
 または
:vert diffs 比較対象ファイルパス
gvim で垂直分割してファイル比較
gvim で垂直分割してファイル比較

Kaoriya版Vimでは、次のコマンドが実装されています。このコマンドによって、より短いコマンドで実行できます。

(ノーマルモード)
:VDsplit 比較対象ファイルパス

なお、差分箇所を移動するには次のキー操作を使うことができます。

キー操作移動
[c前(上)の差分箇所へ移動する
]c次(下)の差分箇所へ移動する

また次のようにすると、diffモードを終了できます。

:diffoff

このVimコマンドの補足情報

  • 利用頻度3.0
  • 便利さ4.0
  • 覚え易さ3.0

関連するVimヘルプ

Vimからは、下記のコマンドでヘルプを確認できます。

:help diff
:help vimdiff
:help gvimdiff
:help diff-mode

ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。

Vim力を上げる参考書籍

Vim力を上げるにはこれらの書籍が欠かせませんね。

実践Vim 思考のスピードで編集しよう! (アスキー書籍)
古くて新しいUnixのエディタVim――このVimのエディタとしてのコア機能をマスターするた...

Vim/neovim関連の書籍で、もっとも評判が良い(気がする)書籍です。Vim基本動作に関するバイブルと読んでる人もいます。その高い評価は、Amazonのレビューを読んでも間違いありません。

 

Vimテクニックバイブル~作業効率をカイゼンする150の技
(概要)Vimは開発者やサーバ管理者だけでなく,幅広いユーザをカバーする強力な̌...

こちらもVim関連の書籍で評価が高い書籍です。Vimを実践で使うノウハウが詰まっていますので、Vimmerなら一読する価値アリです。

 

Vim script テクニックバイブル ~Vim使いの魔法の杖 | Vim scriptサポーターズ |本 | 通販 | Amazon
AmazonでVim scriptサポーターズのVim script テクニックバイブル ~Vim使いの魔法の杖。アマゾンならポイント還元本が多数。Vim scriptサポーターズ作品ほか、お急ぎ便対象商品は当日お届けも可能。またVim script テクニックバイブル ~Vim使いの魔法の杖もアマゾン配送商品なら通常...

Vim/neovim の設定ファイルやプラグインなど、Vim script に関するノウハウがいくつも詰まった一冊。Vim力を伸ばすなら、一度は読んでおくべきかも知れません。

プロフィール
管理人
Vim 一郎

Vim力アップして、そろそろ上級 Vimmer の仲間入りしたいIT系エンジニアの端くれです。読んでくる訪問者の皆様と一緒に、Vim力を上げていくことができる記事が書ければと考えています。

Vim 一郎をフォローする
Vim操作方法
Vim 一郎をフォローする
スポンサーリンク
関連記事
Vim入門
タイトルとURLをコピーしました