パーソナルツール

2つのテキストファイルの差分を取る

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

vimエディタを使用して、2つのテキストファイルの差分を表示する方法を紹介します。 このテクニックは、主にファイルの比較をする場合に使用します。 (Windows, Mac)

概要

vimエディタを使用して、2つのテキストファイルの差分を表示する方法を紹介します。
このテクニックは、主にファイルの比較をする場合に使用します。

指定のファイルとの差分のとり方

「diffsplit」コマンドを使う

vimエディタでは「diffsplit」コマンドで、 今エディタで開いているファイルと、指定したファイルとの差分を表示できます。
「diffsplit」を使ってファイルの差分を取る場合、コマンドの書式は次のようになります。

:vertical diffsplit 差分を取りたいファイル

差分を取りたいファイルの名前が「theother.txt」なら、コマンド例は次の通りです。

:vertical diffsplit theother.txt
2つのテキストファイルの差分表示(横並べ)

Note

「vertical」コマンドは「ウィンドウを横2つに分割しろ」という指定です。
このオプションを外した場合、ウィンドウは縦2つに分割された後、 各差分がそれらのウィンドウに表示されます。

" 差分を取りたいファイルが「theother.txt」の場合のコマンド例
:diffsplit theother.txt
2つのテキストファイルの差分表示(縦並べ)

「VDSplit」コマンドを使う

Kaoriya 版パッチのあたっているvimエディタなら、 「vertical diffsplit」と同様の機能を持つコマンドとして、 「VDSplit」というコマンドが組み込まれています。
この「VDSplit」コマンドを使用すると、 より少ないキーストロークで2つのファイルの差分を表示できます。

:VDSplit 差分を取りたいファイル

" 差分を取りたいファイルが「theother.txt」の場合のコマンド例
:VDSplit theother.txt
2つのテキストファイルの差分表示(横並べ)

Note

「VDSplit」コマンドは Kaoriya 版パッチのあたっているvimエディタでのみ、 使用できるコマンドです。

指定のバッファとの差分のとり方

差分を取りたい2つ目のファイルがバッファに入っている時(既にエディタで読み込んでいる時)、
そのバッファは「# + バッファの番号」という書式で指定できるので、 次のような方法でも差分をとることができます。
この方法は大抵、ファイル名を指定した場合よりもキーストロークが少なくて済むので、 覚えておくと役に立ちます。

:VDSplit 差分を取りたいバッファ

" 差分を取りたいバッファの番号が5の場合のコマンド例
:VDSplit #5
2つのテキストファイルの差分表示(横並べ)

Note

バッファの番号を知るには「buffers」コマンドか、「ls」コマンドを実行してください。
vimエディタのコマンドの中で「# + バッファの番号」と記述すると、 その番号のバッファを指定したことになります。

:buffers
「buffers」コマンドの実行結果
ドキュメントアクション
コメント
blog comments powered by Disqus