VSCodeにはファイルの差分(diff)を確認する方法が複数ある。本記事では標準機能でのファイル比較、codeコマンドからの起動、Local Historyによる過去の内容との比較、Gitの差分表示、拡張機能によるフォルダや文字列の比較を解説する。

2つのファイルを比較して差分を表示する

VSCodeでファイル同士を比較して差分を表示するには、次の手順に従う。

  1. エクスプローラーで比較したい2つのファイルを表示する

  2. 比較元のファイルを右クリックし、「Select for Compare」(日本語の場合は「比較対象の選択」)を選択する

    比較対象の選択

  3. 比較先のファイルを右クリックし、「Compare with Selected」(日本語の場合は「選択項目と比較」)を選択する

    選択項目と比較

VSCodeのエディタに差分が並べて表示される。左に「比較対象の選択」で選んだファイル、右に「選択項目と比較」で選んだファイルが表示される。

diff

差分のインライン表示

差分をインライン表示でも確認できる。

右上の…メニューから「インライン ビュー」(英語の場合はInline View)を選択すると差分がインライン表示される。

インラインビューメニュー

インライン表示すると以下のように差分が表示される。

インラインビュー

ターミナルからファイルを比較する(codeコマンド)

codeコマンドで-dオプションを指定するとターミナルから直接VSCodeで差分を確認できる。

以下のように入力する。

$ code -d file1 file2

codeコマンドについては以下を参照。

vscodeをコマンドで起動する

開いているファイルをクリップボードと比較する

コマンドパレット(ctrl+shift+p)からFile: Compare Active File with Clipboardを選ぶと、開いているファイルとクリップボードの内容を比較できる。他のアプリからコピーしたテキストとの差分を拡張機能なしで確認できる。

比較する相手を別のファイルから選ぶ場合はFile: Compare Active File With...を選ぶ。エクスプローラーで2回右クリックするより手早く比較できる。

空白だけの違いを差分に表示する

差分エディタは既定で行頭と行末の空白の違いを無視する。インデントを変えただけの行や、行末の空白を消しただけの行は差分として表示されない。

空白の違いも差分に含めるにはdiffEditor.ignoreTrimWhitespacefalseにする。

{
  "diffEditor.ignoreTrimWhitespace": false
}

過去の編集内容と比較する(Local History)

VSCodeはファイルを保存するたびに編集履歴を記録する。記録した履歴と現在の内容を比較できるため、Gitにコミットしていない変更を見返したい場合に役立つ。

Local Historyは既定で有効である。無効にしている場合は設定の「Local History: Enabled」で有効に戻す。

Local Historyの設定

編集履歴はエクスプローラーの下の「タイムライン」に一覧される。エントリをクリックすると現在のファイルとの差分が表示される。

タイムライン

エントリを右クリックすると、前のエントリとの比較や、その時点の内容への復元も選択できる。

保存する履歴の件数はworkbench.localHistory.maxFileEntries(既定50件)、記録対象とするファイルサイズの上限はworkbench.localHistory.maxFileSize(既定256KB)で変更する。

Gitの差分を確認する

VSCodeはデフォルトでGitの差分を表示する機能がある。

画面左の「ソース管理」をクリックすると左ペインに「ステージされている変更(add済みの変更)」と 「変更(addしていない変更)」が一覧される。
その中のファイルを選択すると右ペインに差分が表示される。

Gitの差分

差分表示では「→」をクリックすると差分を戻せる。
「→」をクリックしただけではファイルが保存されていないので注意。

差分を戻す

比較に便利な拡張機能

フォルダの比較(Compare Folders)

VSCode上の2つのフォルダを比較するには拡張機能のCompare Folders を使う。

Compare Folders

インストールすると左に「Compare Folders」のボタンが追加される。

Compare Folders button

左ペインの「Click to select folders」をクリックするとフォルダを選択するダイアログが2回表示されるので比較したいフォルダを選択する。

フォルダ選択

フォルダを2つ選択し終えると左ペインに差分があるファイルの一覧が表示される。
ファイルを選択すると右ペインに差分が表示される。

比較結果

Compare Foldersの設定や他の拡張機能については以下を参照。

【VSCode】フォルダ同士を比較する

選択した文字列を比較(Partial Diff)

ファイル単位ではなく選択した文字列同士を比較するには拡張機能のPartial Diff を使う。

Partial Diff

以下の手順で利用する。

  1. 比較したい文字列を選択する
  2. 右クリックし、「Select Text for Compare」を選択する
  3. 比較したい文字列を選択する
  4. 右クリックし、「Compare Text with Previous Selection」を選択する

Partial Diffの利用手順

上記手順の他にも、他のアプリでコピーしてクリップボードに入っている文字列との比較もできる。
その場合はVSCodeで比較したい文字列を選択し、右クリックし、「Compare Text with Clipboard」を選択する。

クリップボードとの比較