プラグイン


WinMergeプラグインは、COM APIで書かれたカスタムDLLまたはスクリプトレットです。 これは、比較の前にデータを前処理します。 例えば、WinMergeで比較するためにMS Word のファイルからテキストデータを抽出するプラグインがあります。

プラグインは:

1. プラグインの種類

プラグインは3つの主なカテゴリに分類されます:

エディタスクリプトプラグイン

このタイプのプラグインは、ファイル比較ウィンドウのアクティブなエディタ(ファイルペイン)で選択したテキストに対してカスタム操作を実行します。

展開プラグイン - ファイルからテキストフォーマットへ

このタイプのプラグインは、圧縮ファイルを解凍して表示可能な形式に変換します。 元のファイルは変更されません。 一時的に変換されたファイルが作成され、WinMergeにロードされます。

展開プラグインは、選択されたテキストやファイル内の差分に対してではなく、ファイル全体に対して機能します。 したがって、フォルダ比較ウインドウまたはファイルまたは フォルダの選択ダイアログからファイル比較を起動するときのみ利用可能です。 展開プラグインはファイル比較ウィンドウでは利用できません。

プラグインによっては、展開されたファイルを再圧縮することができます (「使用できるプラグイン」 の詳細を参照して、 再圧縮がサポートされているかどうかを確認してください)。 その後、変換されたファイルをマージして保存できます。 この場合、梱包は自動的に行われます。 安全のために、変換したファイルを保存するときに名前を変更することをお勧めします。

注意

フォルダを比較すると、WinMergeは圧縮ファイルと非圧縮ファイルに 対して異なる結果をもたらす可能性があります。 たとえば、圧縮されていないときには同一のファイルでも、 圧縮された場合、作成日が含まれているために異なる場合があります。 WinMergeはすべての状況で展開プラグインを適用します。フォルダを比較するときや、 2つのファイルを比較するときでも同じ結果が得られます

プラグインの例: 「CompareMSExcelFiles」 Microsoft® Excel ファイルのテキスト内容を表示します。

比較前処理プラグイン: 差異を隠すためのファイルの前処理

この種類のプラグインは、 比較ウィンドウに表示されている元のファイルには作用しません。 代わりに元のファイルから何らかの加工を行ったファイルを一時的に作成し、 そのファイルから差異リストを作成します。

プラグインの例: 「IgnoreColumns」 指定された列範囲に表示されている文字の違いを 無視します。

2. 提案されたプラグインと自動モード

WinMergeはどのようにして渡されたファイルに適切なプラグインを適用しているのでしょうか? 各プラグインはファイル拡張子のリストを持っています (「使用できるプラグイン」セクションの各プラグインのファイルフィルタにも リストされています) その拡張子は、1つ以上のファイルタイプをプラグインに関連付けるために使用されます。: 比較するファイルの拡張子があるプラグインの拡張子リストと一致する場合、 そのプラグインが提案されたプラグインとなります。

このトピックで後述する展開プラグインタイプと比較前処理プラグインタイプには 別々のオプションがあり、これらを使用して手動または自動でプラグインを適用できます。 エディタスクリプトプラグインには自動モードはありません。

自動モードを使用して選択したファイルにプラグインを適用すると、 WinMergeは、そのファイルタイプの推奨プラグインのリストを検索し、 名前が一致する最初のプラグインを適用します。 検索はアルファベット順で実行されます。このため、ファイルタイプに複数の推奨プラグインがある場合、 最初に見つかったもののみが適用されます。

3. プラグインの適用

次のサブセクションでは、各タイプのプラグインを適用する方法について説明します。 方法はプラグインのタイプごとに異なり、 フォルダーとファイルのどちらを比較するかどうかによっても異なります。

3.1. ファイル比較ウインドウでのエディタスクリプトプラグイン適用

ファイル比較ウィンドウのファイルペインにカーソルを置き、 プラグインスクリプトをクリックして、次の機能のいずれかを選択します:

  • 大文字に変換

  • 小文字に変換

  • 重複行を削除

  • 重複行をカウント

  • 昇順にソート

  • 降順にソート

  • 列を逆順

  • 行を逆順

  • 列を抽出...

  • 行を抽出...

  • 置換...

  • フィルタコマンドを適用...

  • トークン分割...

  • 行頭行末の空白を削除

  • 日付を挿入

  • 時刻を挿入

スクリプト メニューのこの機能は、「editor addin」「insert datetime」 プラグイン によるものです。

注意

エディター補完プラグインは、 フォルダー比較ウインドウでは使用できません。

3.2. フォルダ比較ウインドウでの展開プラグインの適用

展開プラグインを適用する前に、 モードを自動モードまたは手動モードに設定できます。

  • このタイプのプラグインの自動モードを設定するには、 プラグイン自動展開をクリックしてください。

  • 手動モードを設定するには、プラグイン手動展開をクリックしてください。

新たな設定を反映するにはフォルダー比較ウィンドウをF5をクリックして、 リロードしてください。

3.2.1. 自動展開モードの使用

自動展開が設定されているときにプラグインを適用するには、 フォルダー比較ウィンドウでファイルの比較操作を開始するだけです。 ファイルのタイプから自動的に選択された展開プラグイン(存在する場合)がファイルを前処理し、 WinMergeがファイル比較ウィンドウで開きます

たとえば、MS Wordのdocファイルを右クリックして Compareを選択するとします (「CompareMSWordFiles」プラグインが利用可能であると仮定します)。 WinMergeは、docファイル(またはそのコピー)をプレーンテキストファイルに変換し、 ファイル比較ウィンドウで開きます。

3.2.2. 手動展開モードの使用

手動モードでは、自動モードで選択されたものとは異なる展開プラグインを選択できます。 プラグインを使用せずに比較することもできます。

手動展開が設定されているときにプラグインを適用するには:

  1. 比較するファイルを選択します。

  2. プラグイン展開プラグインで開くをクリックします

    選択したファイルのタイプが利用可能な展開プラグインによってサポートされている場合にのみ、 このメニュー項目が有効になります。

  3. 展開プラグインの選択ダイアログで:

    1. 自動展開を設定するか、または手動でプラグインを選んでください。

      • 自動展開モード(最初の利用可能なプラグインを適用)を使用するには、ファイル展開プラグイン にて<自動展開>を選択してください。

      • 異なったプラグイン(利用可能であれば)を選択したい場合は、ファイル展開プラグインにてプラグインを選択してください。

        デフォルトでは、比較する対象にファイルに応じた拡張子用のプラグインだけを表示します。すべての利用可能なプラグインを見るためには、 すべての展開プラグインを表示し、拡張子をチェックしませんオプションを有効にしてください。

      • プラグインを使用せずに比較を行い対場合は、ファイル展開プラグインにて <なし>を選んでください。

    2. OKをクリックして、展開プラグインの選択ダイアログを閉じてください。

  4. OKをクリックして、 「展開プラグインの選択」ダイアログを閉じて、ファイル比較を開始します。

3.3. ファイル/フォルダ選択ダイアログでの展開プラグインの適用

「ファイルまたはフォルダーの選択」ダイアログからファイル比較を起動するときに、 「展開プラグインの選択」ダイアログを使用してプラグインを適用できます。 詳細は、「ファイル比較で使用する展開プラグインの選択」 を参照してください。

3.4. フォルダ比較ウインドウでの比較前処理プラグインの適用

比較前処理プラグインでは、モード(<Automatic>または <None>)またはプラグイン名を個々のファイルに設定します。 (これをすべてのファイルのモードを設定する展開プラグインと比較してください。) つまり、同じフォルダー内のいくつかのファイルには異なる比較前処理モードがあります。

フォルダー比較ウィンドウで1つ以上のファイルのモードを設定するには、 ファイルを右クリックしてプラグイン設定比較前処理プラグイン設定を選択し、サブメニューオプションのいずれかを選択します。

  • <Automatic> は、 指定したファイルのタイプに使用できる比較前処理プラグインの最初のものを選択します。

  • <None>は、 比較前処理プラグインを使用しません。

ウィンドウを更新するにはF5をクリックしてください。

注意

非再帰比較中にサブフォルダーを開くと、モードは常に <None>にリセットされます。

フォルダ比較ウィンドウからファイルを開くと、 ファイル比較ウィンドウが開く前にそのファイルの比較前処理プラグイン設定が適用されます。

3.5. ファイル比較ウインドウでの比較前処理プラグインの適用

ファイル比較ウィンドウで、 プラグイン比較前処理プラグインをクリックして、リスト内のプラグインの1つを選択することにより、 比較前処理プラグインを適用できます。推奨されるプラグインはリストの上部に示されています。 プラグインが適用された後にファイルが再度比較されるため、ファイルを再スキャンする必要はありません。

4. 使用できるプラグイン

4.1. CompareMSExcelFiles

Microsoft® Excel ファイルのテキストの内容を表示します。すべてのフォーマットおよび埋め込みオブジェクトは取り除かれて表示されます。

分類: 展開プラグイン
ファイルフィルタ: *.xls, *.xlsx, *.xlsm, *.xlsb, *.xla, *.xlax, *.xltx, *.xltm
プラグイン引数: No
書き戻し: No
設定ダイアログサポート: Yes
依存するもの: Microsoft® Excel

4.2. CompareMSPowerPointFiles

Microsoft® PowerPoint ファイルのテキストの内容を表示します。すべてのフォーマットおよび埋め込みオブジェクトは取り除かれて表示されます。

分類: 展開プラグイン
ファイルフィルタ: *.ppt, *.pptx, *.pptm, *.ppa, *.ppam, *.pot, *.potx, *.potm
プラグイン引数: No
書き戻し: No
設定ダイアログサポート: Yes
依存するもの: Microsoft® PowerPoint

4.3. CompareMSVisioFiles

Microsoft® Visio ファイルのテキストの内容を表示します。すべてのフォーマットおよび埋め込みオブジェクトは取り除かれて表示されます。

分類: 展開プラグイン
ファイルフィルタ: *.vsd, *.vsdx, *.vsdm, *.vss, *.vssx, *.vssm, *.vst, *.vstx, *.vstm
プラグイン引数: No
書き戻し: No
設定ダイアログサポート: Yes
依存するもの: Microsoft® Visio

4.4. CompareMSWordFiles

Microsoft® Word ファイルのテキストの内容を表示します。すべてのフォーマットおよび埋め込みオブジェクトは取り除かれて表示されます。

分類: 展開プラグイン
ファイルフィルタ: *.doc, *.docx, *.docm, *.dot, *.dotx, *.dotm
プラグイン引数: No
書き戻し: No
設定ダイアログサポート: Yes
依存するもの: Microsoft® Word

4.5. PrettifyHTML

tidy-html5 を使用して HTML ファイルを整形します。

PrettifyHTML [arguments...]

arguments

tidy コマンドに渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.html, *.htm
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: tidy-html5

4.6. PrettifyXML

tidy-html5 を使用して XML ファイルを整形します。

PrettifyXML [arguments...]

arguments

tidy コマンドに渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.xml
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: tidy-html5

4.7. PrettifyJSON

jq コマンドを使用してJSON ファイルを整形します。

PrettifyJSON [arguments...]

arguments

フィルタまたは jq コマンドに渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.json
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: jq

4.8. PrettifyYAML

yq コマンドを使用してYAML ファイルを整形します。

PrettifyYAML [arguments...]

arguments

フィルタまたは yq コマンドに渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.yaml, *.yml
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: yq

4.9. QueryCSV

q コマンドを使用して CSVファイルからデータを抽出します。

QueryCSV [arguments...]

arguments

SQL文または q コマンドに渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.csv
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: q

4.10. QueryTSV

q コマンドを使用して TSVファイルからデータを抽出します。

QueryTSV [arguments...]

arguments

SQL文または q コマンドに渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.tsv
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: q

4.11. QueryJSON

jq コマンドを使用して JSONファイルからデータを抽出します。

QueryJSON [arguments...]

arguments

フィルタまたは jq コマンドに渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.json
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: jq

4.12. QueryYAML

yq コマンドを使用して YAMLファイルからデータを抽出します。

QueryYAML [arguments...]

arguments

フィルタまたは yq コマンドに渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.yaml, *.yml
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: yq

4.13. ValidateHTML

tidy コマンドを使用して HTMLファイルを検査します。

ValidateHTML [arguments...]

arguments

tidy コマンドに渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.html, *.htm
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: tidy-html5

4.14. VisualizeGraphviz

Graphviz ファイルを画像化します。

VisualizeGraphviz [arguments...]

arguments

dot コマンドに渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.gv, ,*.dot
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: Graphviz

4.15. ApacheTika

Apache Tika を使用してファイルからテキストを抽出します。

ApacheTika [arguments...]

arguments

tika-app.jar に渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.*
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: Java, Apache Tika

4.16. DisassembleJVM

javap を使用してJVMバイトコードをディスアセンブルします。

DisassembleJVM [arguments...]

arguments

javap コマンドに渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.class
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: Java

4.17. DisassembleIL

ildasm を使用してILコードをディスアセンブルします。

DisassembleIL [arguments...]

arguments

ildasm コマンドに渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.obj, *.lib, *.exe, *.dll
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: Visual Studio

4.18. DisassembleNative

dumpbin を使用してネイティブコードをディスアセンブルします。

DisassembleNative [arguments...]

arguments

dumpbin コマンドに渡すコマンドラインオプション。

分類: 展開プラグイン
ファイルフィルタ: *.obj, *.lib, *.exe, *.dll
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: Visual Studio

4.19. ExecFilterCommand

フィルタコマンドを適用します。

ExecFilterCommand [command]

command

実行するコマンド。 コマンド内の %1 はファイル名に置き換わります。

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.20. MakeUpper

テキストを大文字に変換します

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: No
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.21. MakeLower

テキストを小文字に変換します

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: No
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.22. RemoveDuplicates

重複行を削除します

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: No
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.23. CountDuplicates

重複行をカウントします

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: No
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.24. SortAscending

行を昇順にソートします

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: No
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.25. SortDescending

行を降順にソートします

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: No
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.26. ReverseColumns

列を逆順にします

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: No
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.27. ReverseLines

行を逆順にします

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: No
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.28. SelectColumns

指定した列を抽出します。

SelectColumns [ranges]

SelectColumns [-v] [-i] [-g] [-e patterns]

ranges

抽出する列範囲のリスト (例 -3,5-10,30-)

patterns

正規表現

-v

マッチしない列を抽出します

-i

大文字小文字を無視します

-g

グローバルフラグを有効にします

-e

パターンマッチングにpatternsを使用します

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.29. SelectLines

指定した行を抽出します。

SelectLines [ranges]

SelectLines [-v] [-i] [-e patterns]

ranges

抽出する行範囲のリスト (例 -3,5-10,30-)

patterns

正規表現

-v

マッチしない行を抽出します

-i

大文字小文字を無視します

-e

パターンマッチングにpatternsを使用します

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.30. Replace

テキストを置換します。

Replace [-i] [-e] [text_to_find] [text_to_replace]

text_to_find

検索するテキスト

text_to_replace

置換するテキスト

-i

大文字小文字を無視します (-e指定時のみ有効)

-e

指定したテキストを正規表現として扱います

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.31. Tokenize

トークン分割を行います。

Tokenize [patterns]

patterns

トークン分割に使用する正規表現 (例 [^\w]+)

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: Yes
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.32. Trim

行頭行末の空白を削除します

分類: 展開プラグイン
ファイルフィルタ: *.nomatch
プラグイン引数: No
書き戻し: No
設定ダイアログサポート: No
依存するもの: Windows Script Host

4.33. IgnoreColumns

このプラグインは、指定された列の文字を無視します。 最初の列の番号は1です。

このプラグインはタブ付きのファイルをサポートしていないことに注意してください。 プラグインは失敗しませんが、すべてのタブは通常の文字として扱われます。

列を指定するには、プラグイン設定ダイアログを使用するか、次のフィールドをパラメーターとして使用してdllの名前を変更します:

  • 範囲間の区切り文字: _ または ,
  • 最小と最大の間の区切り文字: その他の文字
  • 最小と最大は範囲に含まれます。
  • max = minの場合、maxは省略できます。

例1 IgnoreColumns examples

IgnoreColumns _ 3 _ 10 - 20 _ 32 - 33.dll
列3、列10から20、列32から33のすべての文字を無視します。
IgnoreColumns_1,30 to 40.dll
列1と列30から40のすべての文字を無視します。

分類: 比較前処理プラグイン
ファイルフィルタ: *.txt
プラグイン引数: Yes

4.34. IgnoreCommentsC

このプラグインはC言語, C++, PHP, JavaScript ファイルの //... と /* ... */ で区切られたコメントを無視します。

分類: 比較前処理プラグイン
ファイルフィルタ: *.cpp, *.cxx, *.h, *.hxx, *.c, *.php, *.js, *.cs, *.ts
プラグイン引数: No
設定ダイアログサポート: No

4.35. IgnoreFieldsComma

このプラグインは、フィールドとコンマを区切り文字として使用するファイル用です (CSVファイルなど)。 区切り文字は無視されます。 最初のフィールドの番号は1です。

区切り文字を指定するには、プラグイン設定ダイアログを使用するか、 「IgnoreColumns」に使用されるのと同じパラメーターフィールドを使用して dllの名前を変更します。

分類: 比較前処理プラグイン
ファイルフィルタ: *.csv
プラグイン引数: Yes
設定ダイアログサポート: Yes

4.36. IgnoreFieldsTab

このプラグインは、フィールドとタブを区切り記号として使用するファイル用です (たとえばExcel ファイルは*.txt形式で保存されます)。 区切り文字は無視されます。 最初のフィールドの番号は1です。

To specify the delimiters, use plugin settings dialog or rename the dll using the same parameter fields used for 「IgnoreColumns」.

分類: 比較前処理プラグイン
ファイルフィルタ: *.txt
プラグイン引数: Yes
設定ダイアログサポート: Yes

4.37. IgnoreLeadingLineNumbers

このプラグインは、テキストファイル (NCファイルやBASICファイルなど)の先頭の行番号を無視します。

分類: 比較前処理プラグイン
ファイルフィルタ: *.nc
プラグイン引数: No
設定ダイアログサポート: No

4.38. editor addin

いくつかの関数をプラグインスクリプト メニューに追加します:

  • 大文字に変換 選択範囲を大文字に変換します。
  • 小文字に変換 選択範囲を小文字に変換します。
  • 重複行を削除 選択範囲内の重複した行を削除します。
  • 重複行をカウント 選択範囲内の重複した行を削除し、重複行の数+1を行末に挿入します。
  • 昇順にソート 選択範囲の行を昇順にソートします。
  • 降順にソート 選択範囲の行を降順にソートします。
  • 列を逆順 選択範囲内の列を逆順にします。
  • 行を逆順 選択範囲内の行を逆順にします。
  • 列を抽出... 選択範囲内の指定した列を抽出します。
  • 行を抽出... 選択範囲内の指定した行を抽出します。
  • 置換... 選択範囲内の文字列を別の文字列に置換します。
  • フィルタコマンドを適用... 選択範囲を指定したフィルタコマンドの出力に置き換えます。 コマンド内の %1 は現在のペインのファイル名に置き換わります。
  • トークン分割... 選択範囲内でトークンの区切りを改行に置換します。
  • 行頭行末の空白を削除 選択範囲内の行頭と行末の空白を削除します。
分類: エディタ補完
ファイルフィルタ: *
設定ダイアログサポート: No

4.39. insert datetime

プラグインスクリプト メニューに2つの機能を追加します:

  • 日付を挿入 insert date in the current locale format.
  • 時刻を挿入 insert time in the current locale format.
分類: エディタ補完
ファイルフィルタ: *
設定ダイアログサポート: No

5. 必要なもの

5.1. Windows Script Host

一部のエディター補完プラグインには、 Microsoft®のコンポーネントが必要です

Windows XPより前の古いバージョンのWindowsを使用しない限り、既に含まれているはずです。

5.2. Visual Basic ランタイムライブラリ

一部のプラグインでは、動作するためにVisual Basic ランタイムライブラリが必要です。

Microsoft®のRun-Time Redistribution Packが使用できます。 プラグインが不要な場合は、安全に削除できます。