WinMerge

【初心者向け】WinMergeのおすすめ設定を公開します

はじめに

・WinMerge使うにあたり一通り設定をしたい。
・他の人の設定ってどうなっているか知りたい。

という人向けの内容です。

進め方としては、私のWinMerge設定を公開し、設定の理由を説明をしていきます。

本記事のゴール(読む事によってできる事)は以下とします。

・WinMergeの設定が一通りできること。

ふくろう
ふくろう
それではいきましょう。



ファイル

この設定はファイル比較画面で実施してください。

  • STEP1
    マージモード
    マージモードを有効化(レ点チェック付きの状態)にします。

    マージモードとは、ファイル比較でのキー操作が簡単になるモードです。

    ↑、↓キー:次、前の差分箇所へフォーカスを移動
    ←:差分箇所の右ファイルの内容を左のファイルへコピー
    →:差分箇所の左ファイルの内容を右のファイルへコピー

    業務では、差分箇所を目視確認して1つづつ差分を反映させていく、という事を行います。
    理由は、想定していない変更が入っていないかを確認する為です。

    ↑、↓、←、→キーのみで差分を反映できるので操作が楽になります。

編集

編集タブから設定を開いてください。

  • STEP1
    比較(一般)
    1.空白は比較します。(「比較する」を選択)
    理由はソースコードを実装する際、無駄な空白等が入っていないか確認する為です。

    2.空行は無視しません。(「空行を無視する」にレ点をつけない)
    理由は1.と同じく、必要以上の空行は1画面で収まらなくなる等の視認性(コードの可読性)を悪化させる為、無駄な空行がないか確認します。

    3.移動ブロック検出を有効にします。(レ点をつける)
    理由はコンパイルが通らない等の理由以外にも、似たコードは1か所に固めて記載するといった理由で、関数の中身は変わらずに実装箇所を移動する事があります。そういった事を検知しやすくさせる為です。(完全には検出できないので、参考レベルです)

    4.類似行をマッチさせる。(レ点をつける)
    理由はNo.3と同じです。

    5.コメントの差異を無視しません。(レ点をつけない)
    理由はソースコード上のコメントも大事な更新(保守)の対象である為です。ソースコードは変更しましたがコメントが古いまま、というのがよく起きてしまいます。

  • STEP2
    比較(フォルダー)
    1.比較方法はフルコンテンツとします。

    2.サブフォルダーを含めます。(サブフォルダーを含めるにレ点をつける)

    3.自動的にサブフォルダーを展開します。(レ点をつける)
    理由は自動的に展開しないと、比較後に手動でサブフォルダーを展開する必要があり、手間だからです。
    デメリットは差分が多い時に自動で展開すると比較結果の表示に時間がかかってしまう事があります。

  • STEP3
    エディタ
    1.シンタックスハイライトを有効にします。(レ点をつける)
    理由は文字に色がついていた方が見やすいからです。

    2.行内差異の色付けは行内差異を表示します。(レ点をつける。文字単位)
    理由は差分のあった行の文字が多い時に、どの箇所が差分か、わかりにくい事がある為です。

  • STEP4
    基本的には好みです。私はデフォルト設定で慣れてしまいました。
  • STEP5
    システム
    外部エディタ
    C:\Program Files (x86)\sakura\sakura.exe $file -Y=$linenum

    個人的には一番MUSTな設定項目です。
    理由はファイルの差分箇所(行、列)にエディタで開いて飛べるからです。
    エディタで開けるので、

    1.慣れている画面(色等)で差分箇所が確認できる。
    2.エディタ機能(Grepやマクロ等)を使う事ができるのがメリットです。

  • STEP6
    バックアップファイル
    1.バックアップファイル名の.bak拡張子を追加しません。(レ点をとる)
    理由はマージモードなどで差分ファイルに変更を加えた際、.bakという名前で保存してしまう為です。
    (ファイルを比較しながら直接ファイルを変更する事が多いので、.bakで保存されると手間です。前提としてSVN管理している等でバックアップファイルがある為.bakで退避させる必要がありません。)
  • STEP7
    シェル統合
    1.コンテキストメニューに追加します。(レ点をつける。)
    インストール時に設定しているはずです。右クリックでWinMergeを使用すると楽です。



表示

  • STEP1
    フォントの選択
    フォント名:MSゴシック、スタイル:標準、サイズ:8
  • STEP2
    Diffコンテキスト
    5行
    本機能は差分箇所の前後何行を表示させるか、という機能になります。0行だと前後関係がわからずに9行だと差分が多い時に比較結果が長くなります。まず5行にし、必要に応じて変化させればよいと思います。
  • STEP3
    空白を表示する
  • STEP4
    行内差異を表示する
  • STEP5
    行番号を表示する
    以下は行番号を表示するとした時の表記です。
  • STEP6
    行を右端で折返す
  • STEP7
    垂直分割する
    垂直分割した場合の表記は今までの画像の通りです。
    参考ですが垂直分割しない時は以下のように水平分割になります。
  • STEP8
    ステータスバーを表示する
    あまり見る機会はありませんが、で今選択している行がわかります。
    同期ポイントを追加する時は行が大事です。
  • STEP9
    タブバーを表示する
    これはMUSTです。タブバーを表示しない場合の操作は知りません。その位、タブバーにはお世話になっています。

  • STEP10
    Diffペインを表示する
    Diffペインとは以下赤枠の箇所の事を言います。

    Diffペインの横の×印で閉じる事ができます。閉じた場合もここで有効化すれば再度表示できます。
  • STEP11
    ロケーションペインを表示する
    これでファイル全体に対して変更箇所がどのあたりにあるかを全体的に見る事ができます。
    コードが長い場合に有効で、「確か下の方を変えたな~」ってイメージがあればそこの差分をめがけてスクロールします。





よくある使い方については、以下をご覧いただければ、と思います。
WinMergeのよくある使い方9選はこちら。
TortoiseSVNの差分をWinmergeで開く方法をこちらで紹介しています。
TortoiseSVNのおすすめ設定はこちら。
Winmergeのフィルターの使い方はこちらに記載しましたので、よろしければ見てみてください。
【初心者向け】Winmergeのフィルターを使おう
Winmergeのプラグインを使ってタブを無視するようできる使い方もあります。
【初心者向け】Winmergeのプラグインを使おう

さいごに

いかがでしたでしょうか。
少し長くなりましたが、現状の私が使っているWinMergeの設定とその理由について記載しました。
参考になればうれしいです。

最後までお読みいただき、ありがとうございました。