パーソナルツール

Windows環境のvimエディタでdiff機能を使うには

作者: 小見 拓 最終変更 2012年01月08日 11時57分

vimエディタのdiff機能は「diff」コマンドが実行できる状態でないと使用できません。 Windows環境に「diff」コマンドはインストールされていないので、 vimエディタで「diffsplit」などの機能を使用するには、 何らかの方法で「diff」コマンドが使えるようにする必要があります。 この記事では、その「diff」コマンドの入手方法を説明します。 (Windows)

概要

vimエディタのdiff機能は「diff」コマンドが実行できる状態でないと使用できません。
Windows環境に「diff」コマンドはインストールされていないので、
vimエディタで「diffsplit」などの機能を使用するには、 何らかの方法で「diff」コマンドが使えるようにする必要があります。
この記事では、その「diff」コマンドの入手方法を説明します。

Note

「diff」コマンドのインストールされていないvimエディタで 「VDSplit」コマンドを実行したところ、
次のようなエラーが表示されました。

E97: 差分を作成できません。
「VDSplit」コマンドの実行エラー

「VDSplit」コマンドの実行エラー(拡大)

エラーが発生した時は「help」コマンドを使用すれば、 その原因が分かるときがあります。
vimエディタを使いつづけていくのであれば、 必ず役に立つので覚えておきましょう。

:help E97
「help E97」の実行結果
                                                *E97*
Vim will do a test if the diff output looks alright.  If it doesn't, you will
get an error message.  Possible causes:
-  The "diff" program cannot be executed.
-  The "diff" program doesn't produce normal "ed" style diffs (see above).
-  The 'shell' and associated options are not set correctly.  Try if filtering
  works with a command like ":!sort".
-  You are using 'diffexpr' and it doesn't work.
If it's not clear what the problem is set the 'verbose' option to one or more
to see more messages.

The self-installing Vim includes a diff program.  If you don't have it you
might want to download a diff.exe.  For example from
http://jlb.twu.net/code/unixkit.php.

「diff」コマンドを入手する方法

Windows環境で「diff」コマンドを使えるようにするには、次のような方法が考えられます。

  • 「diff」コマンドの実行ファイルを入手する
  • cygwinをインストールする

この記事では、上の方法、「diff」コマンドの実行用のバイナリを入手し、
それをvimエディタから参照できる場所にコピーする方法を説明します。

Note

cygwinをインストールする場合はcygwinのサイトに行き、 setup.exeをダウンロード、実行してください。
http://www.cygwin.com/

「diff」コマンドのインストール

「diff」の実行用バイナリを入手する

Windows用の「diff」コマンドのバイナリは、次のサイトで入手できます。
このサイトから「Binaries」「Dependencies」の2つのファイルをダウンロードしてください。

「DiffUtils for Windows」
http://gnuwin32.sourceforge.net/packages/diffutils.htm

「DiffUtils for Windows」から必要な」ファイルをダウンロードする

ダウンロードしたファイルを解凍すると、
それぞれの「bin」ディレクトリに「diff」コマンドに必要な 実行ファイルとライブラリが入っています。

  • cmp.exe
  • diff.exe
  • diff3.exe
  • sdiff.exe
  • libiconv2.dll
  • libintl3.dll

「diff」の実行用バイナリをvimエディタから参照できる場所にコピーする

vimエディタから「diff」実行ファイルを参照するには、 次のような方法があります。

  • PATHの通った場所にコピーする
  • vimエディタのインストールディレクトリにコピーする

お勧めは後者です。
vimエディタのインストールディレクトリに、 「diff」の実行ファイルとライブラリをコピーしてください。

「diff」の実行ファイルとライブラリをコピー
ドキュメントアクション
コメント
blog comments powered by Disqus