Windows環境でテキストファイルを扱っていると、**改行コード(CRLF、LF、CR)**の違いによって差分比較ツールで正しく比較できない、あるいは不要な差分が大量に出て困ることがあります。
本記事では、WinMergeで改行コードの違いを検出・可視化する方法と、差分を無視して比較する方法も合わせて解説します。
改行コードの種類(簡潔なおさらい)
| 改行コード | OS / 主な用途 | 表記 |
|---|---|---|
| CRLF | Windows | \r\n |
| LF | Linux / Unix / Mac(現行) | \n |
| CR | 古いMac(OS9以前) | \r |
同じ内容のファイルでも改行コードが違うだけで、比較ツールはファイル全体を「異なる」と判断することがあります。
改行コード差分を無視して比較する方法
改行コードだけの違いで差分が出るのを避けたい場合は、設定で無視できます。
[オプション]で改行差分を無視する
編集 → 設定 → 比較 → 一般 を開くと、次の設定画面が表示されます:
▼ 設定画面(WinMerge:比較 → 一般)

チェックする項目
| 項目名 | 説明 |
|---|---|
| 改行文字の違いを無視する(R) | CRLF / LF / CR の違いを差分として扱わない |
| 空行を無視する(K) | 空行の挿入/削除差分を無視 |
| スペースの違いを無視する(T) | スペースとタブの違いを無視 |
→ 改行コードだけの大量の差分を無視して、実際のコード・文章の差分だけ見たい場合に有効です。
改行コードを統一する方法(自動変換)
WinMergeは差分の比較だけでなく、改行コードの変換も可能です。
改行コードの変換手順
-
該当ファイルタブを右クリック
-
「改行コード」 → CRLF / LF / CR を選択
-
保存すれば改行コードが統一される
よくあるトラブルと対策
| 状況 | 原因 | 対策 |
|---|---|---|
| gitで大量の差分が出る | OS環境混在による改行差異 | .gitattributes で統一設定 |
| diffツールで全行が差分扱い | CRLF / LFの混在 | WinMergeで表示・変換 |
| 文字化けやレイアウト崩れ | エディタ設定不統一 | VSCodeなどで files.eol を統一 |
まとめ
-
WinMergeは改行コードの違いを可視化できる
-
設定により改行コード差分を無視して比較できる
-
必要に応じてCRLF/LFへ統一する変換も可能
環境の違いがあるチーム開発や、WindowsとLinuxが混在するプロジェクトでは、改行コード管理が重要になります。
比較の精度を高めるために、ぜひ上記の設定を活用してください。
