Vim操作方法

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

この記事では、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/neovim関連の書籍で、もっとも評判が良くてバイブルと呼んでる人もいる一冊です。Vim/neovimのバージョンに依存しない沢山のTips形式で、その表題通りに「思考のスピードで編集」できるようになるノウハウが詰まっています。その高い評価は Amazon のレビューからも分かる通りです。Vimmer なら必ず一度は読んでおいて間違いありません。


こちらもVim関連の書籍で評価が高い書籍の一冊です。vim-jpで見かける上級Vimmer(Vimサポーターズ)の皆様による、Vimを実践で使ったノウハウからプラグイン関連の情報が詰まっています。日本の Vim界隈を知る上でも是非一読しておきたい一冊です。

Vim/neovim の設定ファイルやプラグインなど、Vim script に関するノウハウがいくつも詰まった一冊です。日本で Vim Script をここまで深く解説している唯一の書籍と言えます。Vim力を伸ばしたいと考えるなら、絶対に避けては通れない書籍でしょう。

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

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

\フォローする/
\ シェアする /
\フォローする/
関連記事
Vim入門
タイトルとURLをコピーしました