WinMerge Tips
WinMergeとはコード差分を比較するツールである。
他に差分を比較するツールは例えばLinuxではMeldなどが存在するがWinMergeライクのモノがなく、ほぼ一強となっている(個人的な感想)。
vs code
にも差分比較ツールはあるが、かゆいところに手が届かない。
インストール方法
以下からインストール
使い方
ツール自体の日本語対応がしっかりしているので直感的に操作できるので使い方については
以下のドキュメントを参照。
Tips
フィルタについて
WinMerge
では差分比較する際に比較対象を指定するフィルタを使用することができる。
詳細については以下を参照。
ちなみに%localappdata%\Programs\WinMerge\Filters
にあらかじめいくつかのファイルフィルタがプリインストールされている。自作する場合は上記ドキュメントとこれらのプリインのフィルタを参考にするとよい(各フィルタの先頭には記述例が簡単にだが記載されている)。以下でフィルタを作成する際の注意点を記載する。
-
def: include
は以降で記載するファイル・ディレクトリを検索対象外とする定義
感覚とは逆となっているので注意 - 正規表現を使わない場合は指定した文字列の前後はワイルドカード(
*
)扱いとなる。- 例えば
d: Src
と記載した場合は、*Src*
フォルダにマッチする。
- 例えば
- 上記までの規則を踏まえて、例えば差分比較対象プロジェクト内の
.git
フォルダを対象外としたい場合はd: \\\.git$
と記述する必要がある。- 最初の
\
はエスケープ、2つ目の\
はフォルダ区切り、3つ目の\
もエスケープでファイル名中の.
をマッチさせるために記述している。$
は正規表現で文末を表す。
- 最初の
-
差分比較対象プロジェクトのルートの
.git
フォルダのみを対象外としたい場合は
^\\.git$
と記述する。^
は正規表現で先頭を表す。
保存していないファイルの比較
以下の手順で実行することでファイルとして保存していなくてもコピペした文字列を比較することができる。
-
ctrl
+N
で新規作成 - 左右のペインで文字列をペースト
-
F5
で更新
Linuxサーバーのファイルを差分比較したい
WinMerge
はツールの名前通り、Windowsでしか提供されていないのでLinux環境では使うことができない。
しかし、sambaなどを使ってLinuxマシンにWindowsエクスプローラからアクセスすることでLinuxマシンでもWinMerge
を使うことができる。
ネットワークドライブとしてマウントしておくと差分比較が非常にスムーズとなる。
※UNC形式で差分比較できたかは不明、後日確認する。
ネットワークドライブとしてマウントしておくとLinux間で差分比較も可能。
Linuxマシンにsamba
が導入されていないし、管理者でないから導入できないという人は以下の記事を参照。samba
を導入せずともssh接続できる状態であればネットワークドライブとしてマウントすることができる。
検索後のハイライト表示を解除したい
検索機能でヒットした単語はハイライト表示されるが、検索画面を閉じても
ハイライトが維持されてしまう。以下の手順で解除可能(マーカー
という機能でハイライトしている)
-
編集
タブをクリック -
マーカー
をクリック -
マーカーを有効にする
のチェックを外す
※マーカー機能自体はctrl
+ shift
+ m
で呼び出し可能
Discussion