← XeFM English | 日本語 · crftwr/xefm on GitHub · craftware

差分ビューアー

English | 日本語

XeFM には 2 つの差分ビューアーが内蔵されています。2 つのテキストファイルを左右に並べて比較するファイル差分と、2 つのディレクトリツリーを再帰的に比較するディレクトリ差分です。どちらもウィンドウ全体に開き、XeFM を離れずに使えます。

ファイル差分

選択と起動

ちょうど 2 つのファイルを選択して、Select → Compare Selected Files…(選択したファイルを比較、diff_files)を選びます。2 つのファイルは同じペインにあっても、左右のペインに 1 つずつあってもかまいません。XeFM は両方のペインから選択項目を集めます。

  1. ファイルにカーソルを合わせて選択します(Select → Toggle Selection)。
  2. 2 つ目のファイルも同じように選択します(どちらのペインでもかまいません)。
  3. Select → Compare Selected Files… を選ぶと、左右に並んだ差分が開きます。

キーはキーマッププリセットによって異なります。キーマッププリセットを参照してください。

選択に含まれるディレクトリは無視されます。ファイルがちょうど 2 つにならない場合は、XeFM がそう伝えます(Select exactly 2 files to compare)。

バイナリファイル

どちらかのファイルがバイナリ(画像、実行ファイル、アーカイブなど)の場合、比較するテキストがありません。そのときは差分ビューアーの代わりに、diff_files が 2 つのファイルを 1 バイトずつ比較し、結果をメッセージボックスで伝えます。両方のサイズに続けて、Identical(同一)、Different (sizes differ)(サイズが異なる)、または最初に異なるバイトのオフセットが表示されます。

photo.jpg   2,481,152 bytes
photo2.jpg  2,481,152 bytes

Identical

大きなファイルや、リモートサーバー上やアーカイブ内のファイルは、キャンセルできる進捗ダイアログを表示しながら比較します。

差分の読み方

左右それぞれが独自のシンタックスハイライトを保ち(Pygments がインストールされている場合)、各行には元の行番号が付きます。変更箇所は色の帯で示され、帯の色はアクティブなテーマに合わせて変わります(ダークテーマでは暗めの帯、ライトテーマではパステル調の帯)。

操作

キー 動作
↑ ↓ 1 行スクロール
PgUp / PgDn 1 ページスクロール
Home / End 先頭/末尾へ移動
← → 横スクロール
n / N 次/前の変更ブロックへ移動
isearch インクリメンタルサーチ。その後 ↑ / ↓ で一致箇所を移動
中央の境界をドラッグ 2 つのペインの仕切りを移動
F1 キーのヘルプ
Esc または quit ビューアーを閉じる

isearch と quit はファイル一覧と同じキーで、そのキーはキーマッププリセットによって異なります。ここにあるほかのキーは、どのプリセットでも同じです。

フッターには総行数、変更数、キーのヒントが表示されます。タブはテキストビューアーと同じく 8 桁ごとのタブ位置に展開されます。

ディレクトリ差分

Select → Compare Directories…(ディレクトリを比較、diff_directories)を使うと、左ペインの現在のディレクトリと右ペインの現在のディレクトリを再帰的に比較します。ファイルを選択する必要はありません。それぞれのペインで目的のディレクトリに移動して、実行するだけです。

バックアップと実際に使っているディレクトリとの比較、2 つのツリーが同期しているかの確認、アップデートや移行の後に何が変わったかの確認に便利です。

段階的なスキャン

大きなツリーでも操作が重くならないよう、ビューアーは段階的にスキャンします。

ツリーの読み方

両方のツリーを合わせたものが左右に並べて表示されます。ディレクトリは展開と折りたたみができ、2 つの列の間にある中央の区切り記号が、それぞれのノードの判定結果を示します。

フッターの上の行には、フォーカスのある項目の詳細が表示されます。左右それぞれのサイズと更新日時で、新しいほうの側には newer が付きます。差が 2 秒未満の日時は同じとみなされます(FAT/exFAT は日時を 2 秒単位で記録するため)。これはコピーの競合ダイアログの Overwrite older と同じ規則です。

操作

キー 動作
↑ ↓ · PgUp/PgDn · Home/End カーソルを移動
→ / ← ディレクトリを展開/折りたたみ
Enter ディレクトリを開く、または内容の異なるファイルでファイルごとの差分を開く(バイナリファイルでは代わりにバイト比較の結果を表示)
n / N 次/前の違いへ移動
Tab アクティブな側を切り替え
[ / ] 中央の仕切りを移動(境界のドラッグでも可)
クリック/ダブルクリック 片側にフォーカス · ディレクトリ/ファイル差分を開く
copy_files フォーカスのある項目を反対側にコピー
move_files フォーカスのある項目を反対側に移動
delete_files フォーカスのある項目を削除(アクティブな側で)
edit_file 設定した TEXT_DIFF ツールで両側をマージ
s 同期:アクティブな側からのコピーを計画し、もう一度押すと実行 — ディレクトリ同期を参照
d 違いだけを表示するか、すべてを表示するかを切り替え
r 再スキャン
Esc または quit ビューアーを閉じる

アクションの名前を書いた行(copy_files、move_files、delete_files、edit_file、quit)は、ファイル一覧でのそのアクションのキーを使うので、キーはキーマッププリセットによって異なります。キーマッププリセットを参照してください。ほかのキーは、どのプリセットでも同じです。

コピー/移動/削除のキーはメインのファイルマネージャーと同じで、同じファイル操作エンジンを通して実行されるため、2 つのツリーをその場で揃えられます。edit_file は TEXT_DIFF に設定した外部ツールを起動します(たとえばターミナルでは vimdiff、デスクトップアプリでは code --diff)。

注意事項

関連項目