WinMergeプラグインは、COM APIで書かれたカスタムDLLまたはスクリプトレットです。 プラグインは、比較前にデータを加工(前処理)します。 例えば、WinMergeで比較するためにMS Word のファイルからテキストを抽出して比較可能にするプラグインがあります。
1つのdllまたはスクリプトレット (sct) ファイル
MergePlugins
サブフォルダーにインストールされます。WinMerge には、いくつかのプラグインがあらかじめ含まれています。
インストールが簡単: WinMergeのインストールに含まれていないプラグインをインストールするには、プラグインファイルをMergePlugins にコピーするだけです。
プラグインは、次回WinMergeを開いたときに利用可能になります。 ウェブ上で他の開発者が書いた多くのプラグインを見つけることができます。
プラグインは3つの主なカテゴリに分類されます:
このタイプのプラグインは、ファイル比較ウィンドウのアクティブなエディター(ファイルペイン)で選択したテキストに対してカスタム操作を実行します。
このタイプのプラグインは、ファイルを展開・変換し、表示可能な形式にします。元のファイルは変更されません。 一時的に変換されたファイルが作成され、WinMergeにロードされます。
展開プラグインは、選択されたテキストやファイル内の差異に対してではなく、ファイル全体に対して機能します。 したがって、フォルダー比較ウィンドウまたはファイルまたは フォルダーの選択ダイアログからファイル比較を起動するときのみ利用可能です。 展開プラグインはファイル比較ウィンドウでは利用できません。
プラグインによっては、展開されたファイルを再圧縮することができます (「使用できるプラグイン」 の詳細を参照して、 再圧縮がサポートされているかどうかを確認してください)。 その後、変換されたファイルをマージして保存できます。 この場合、梱包は自動的に行われます。 安全のために、変換したファイルを保存するときに名前を変更することをお勧めします。
フォルダーを比較すると、WinMergeは圧縮ファイルと非圧縮ファイルに対して異なる結果をもたらす可能性があります。 たとえば、圧縮されていないときには同一のファイルでも、 圧縮された場合、作成日が含まれているために異なる場合があります。 WinMergeはすべての状況で展開プラグインを適用します。フォルダーを比較するときや、 2つのファイルを比較するときでも同じ結果が得られます
プラグインの例: 「CompareMSExcelFiles」 Microsoft® Excel ファイルのテキスト内容を表示します。
この種類のプラグインは、 比較ウィンドウに表示されている元のファイルには作用しません。 代わりに元のファイルから何らかの加工を行ったファイルを一時的に作成し、 そのファイルから差異リストを作成します。
プラグインの例: 「IgnoreColumns」 指定された列範囲に表示されている文字の違いを 無視します。
WinMergeはどのようにして渡されたファイルに適切なプラグインを適用しているのでしょうか? 各プラグインはファイル拡張子のリストを持っています (「使用できるプラグイン」セクションの各プラグインのファイルフィルターにも リストされています) その拡張子は、1つ以上のファイルタイプをプラグインに関連付けるために使用されます。: 比較するファイルの拡張子があるプラグインの拡張子リストと一致する場合、 そのプラグインが推奨プラグインとなります。
このトピックで後述する展開プラグインタイプと比較前処理プラグインタイプには 別々のオプションがあり、これらを使用して手動または自動でプラグインを適用できます。 エディタースクリプトプラグインには自動モードはありません。
自動モードを使用して選択したファイルにプラグインを適用すると、 WinMergeは、そのファイルタイプの推奨プラグインのリストを検索し、 名前が一致する最初のプラグインを適用します。 検索はアルファベット順で実行されます。このため、ファイルタイプに複数の推奨プラグインがある場合、 最初に見つかったもののみが適用されます。
次のサブセクションでは、各タイプのプラグインを適用する方法について説明します。 方法はプラグインのタイプごとに異なり、 フォルダーとファイルのどちらを比較するかどうかによっても異なります。
ファイル比較ウィンドウのファイルペインにカーソルを置き、 → をクリックして、次の機能のいずれかを選択します:
大文字に変換
小文字に変換
重複行を削除
重複行をカウント
昇順にソート
降順にソート
列を逆順
行を逆順
列を抽出...
行を抽出...
置換...
フィルターコマンドを適用...
トークン分割...
行頭行末の空白を削除
日付を挿入
時刻を挿入
メニューのこの機能は、「エディターアドイン」 と 「日付時刻を挿入」 プラグイン によるものです。
エディター補完プラグインは、フォルダー比較ウィンドウでは使用できません。
展開プラグインを適用する前に、 モードを自動モードまたは手動モードに設定できます。
このタイプのプラグインの自動モードを設定するには、 → をクリックしてください。
手動モードを設定するには、 → をクリックしてください。
新たな設定を反映するにはフォルダー比較ウィンドウをF5をクリックして、 リロードしてください。
自動展開が設定されているときにプラグインを適用するには、 フォルダー比較ウィンドウでファイルの比較操作を開始するだけです。 ファイルのタイプから自動的に選択された展開プラグイン(存在する場合)がファイルを前処理し、 WinMergeがファイル比較ウィンドウで開きます
たとえば、MS Wordのdocファイルを右クリックして
を選択するとします (「CompareMSWordFiles」プラグインが利用可能であると仮定します)。 WinMergeは、docファイル(またはそのコピー)をプレーンテキストファイルに変換し、
ファイル比較ウィンドウで開きます。
手動モードでは、自動モードで選択されたものとは異なる展開プラグインを選択できます。 プラグインを使用せずに比較することもできます。
手動展開が設定されているときにプラグインを適用するには:
比較するファイルを選択します。
→ をクリックします
選択したファイル形式が、利用可能な展開プラグインに対応している場合のみ、 このメニュー項目が有効になります。
展開プラグインの選択ダイアログで:
自動展開を設定するか、または手動でプラグインを選んでください。
自動展開モード(最初の利用可能なプラグインを適用)を使用するには、ファイル展開プラグイン にて<自動展開>を選択してください。
異なったプラグイン(利用可能であれば)を選択したい場合は、ファイル展開プラグインにてプラグインを選択してください。
デフォルトでは、比較する対象にファイルに応じた拡張子用のプラグインだけを表示します。すべての利用可能なプラグインを見るためには、 すべての展開プラグインを表示し、拡張子をチェックしませんオプションを有効にしてください。
プラグインを使用せずに比較を行いたい場合は、ファイル展開プラグインにて を選んでください。
をクリックして、展開プラグインの選択ダイアログを閉じてください。
をクリックして、 「展開プラグインの選択」ダイアログを閉じて、ファイル比較を開始します。
「ファイルまたはフォルダーの選択」ダイアログからファイル比較を起動するときに、 「展開プラグインの選択」ダイアログを使用してプラグインを適用できます。 詳細は、「ファイル比較で使用する展開プラグインの選択」 を参照してください。
比較前処理プラグインでは、モード(<Automatic>または <None>)またはプラグイン名を個々のファイルに設定します。 (これをすべてのファイルのモードを設定する展開プラグインと比較してください。) つまり、同じフォルダー内のいくつかのファイルには異なる比較前処理モードがあります。
フォルダー比較ウィンドウで1つ以上のファイルのモードを設定するには、 ファイルを右クリックして → を選択し、サブメニューオプションのいずれかを選択します。
は、 指定したファイルのタイプに使用できる比較前処理プラグインの最初のものを選択します。
は、比較前処理プラグインを使用しません。
ウィンドウを更新するにはF5をクリックしてください。
非再帰比較中にサブフォルダーを開くと、モードは常に にリセットされます。
フォルダー比較ウィンドウからファイルを開くと、 ファイル比較ウィンドウが開く前にそのファイルの比較前処理プラグイン設定が適用されます。
このプラグインは、Javaの.propertiesファイルをアンエスケープして表示し、保存時に再度エスケープします。
*.properties
Microsoft® Excel ファイルのテキストの内容を表示します。すべてのフォーマットおよび埋め込みオブジェクトは取り除かれて表示されます。
*.xls、*.xlsx、*.xlsm、*.xlsb、*.xla、*.xlax、*.xltx、*.xltm
Microsoft® PowerPoint ファイルのテキストの内容を表示します。すべてのフォーマットおよび埋め込みオブジェクトは取り除かれて表示されます。
*.ppt、*.pptx、*.pptm、*.ppa、*.ppam、*.pot、*.potx、*.potm
Microsoft® Visio ファイルのテキストの内容を表示します。すべてのフォーマットおよび埋め込みオブジェクトは取り除かれて表示されます。
*.vsd、*.vsdx、*.vsdm、*.vss、*.vssx、*.vssm、*.vst、*.vstx、*.vstm
Microsoft® Word ファイルのテキストの内容を表示します。すべてのフォーマットおよび埋め込みオブジェクトは取り除かれて表示されます。
*.doc、*.docx、*.docm、*.dot、*.dotx、*.dotm
tidy-html5 を使用して HTML ファイルを整形します。
PrettifyHTML [引数...]
引数tidy コマンドに渡すコマンドラインオプション。
tidy-html5 を使用して XML ファイルを整形します。
PrettifyXML [引数...]
引数tidy コマンドに渡すコマンドラインオプション。
jq コマンドを使用してJSON ファイルを整形します。
PrettifyJSON [arguments...]
引数フィルターまたは jq コマンドに渡すコマンドラインオプション。
yq コマンドを使用してYAML ファイルを整形します。
PrettifyYAML [引数...]
引数フィルターまたは yq コマンドに渡すコマンドラインオプション。
gettext msgcat コマンドを使用してPO ファイルを整形します。
PrettifyPO [arguments...]
arguments msgcat コマンドに渡すコマンドラインオプション。
q コマンドを使用して CSVファイルからデータを抽出します。
QueryCSV [arguments...]
引数SQL文または q コマンドに渡すコマンドラインオプション。
q コマンドを使用して TSVファイルからデータを抽出します。
QueryTSV [arguments...]
引数SQL文または q コマンドに渡すコマンドラインオプション。
jq コマンドを使用して JSONファイルからデータを抽出します。
QueryJSON [arguments...]
引数フィルターまたは jq コマンドに渡すコマンドラインオプション。
yq コマンドを使用して YAMLファイルからデータを抽出します。
QueryYAML [arguments...]
引数フィルターまたは yq コマンドに渡すコマンドラインオプション。
tidy コマンドを使用して HTMLファイルを検査します。
ValidateHTML [引数...]
引数tidy コマンドに渡すコマンドラインオプション。
gettext msgfmt コマンドを使用して PO ファイルを検査します。
ValidatePO [
引数 ...]
arguments msgfmt コマンドに渡すコマンドラインオプション。
Graphviz ファイルを画像化して表示します。
PreviewGraphviz [引数...]
引数dot コマンドに渡すコマンドラインオプション。
Markdown ファイルをHTMLに変換して表示します。
PreviewMarkdown [引数...]
引数md2html コマンドに渡すコマンドラインオプション。
PlantUML ファイルを画像化して表示します。
PreviewPlantUML [arguments...]
引数plantuml.jar コマンドに渡すコマンドラインオプション。
Apache Tika を使用してファイルからテキストを抽出します。
ApacheTika [引数...]
引数tika-app.jar に渡すコマンドラインオプション。
javap を使用してJVMバイトコードをディスアセンブルします。
DisassembleJVM [arguments...]
引数javap コマンドに渡すコマンドラインオプション。
CFR を使用する Java デコンパイラ。 .class ファイルを読みやすい Java ソースコードにデコンパイルします。
DecompileJVM [arguments...]
引数CFR デコンパイラに渡すコマンドラインオプション。
ildasm を使用してILコードをディスアセンブルします。
DisassembleIL [引数...]
引数ildasm コマンドに渡すコマンドラインオプション。
*.obj、*.lib、*.exe、*.dll
dumpbin を使用してネイティブコードをディスアセンブルします。
DisassembleNative [引数...]
引数dumpbin コマンドに渡すコマンドラインオプション。
*.obj、*.lib、*.exe、*.dll
フィルターコマンドを適用します。
ExecFilterCommand [コマンド]
コマンド実行するコマンド。 コマンド内の %1 はファイル名に置き換わります。
*.nomatch
テキストを大文字に変換します
*.nomatch
テキストを小文字に変換します
*.nomatch
重複行を削除します
*.nomatch
重複行をカウントします
*.nomatch
行を昇順にソートします
*.nomatch
行を降順にソートします
*.nomatch
列を逆順にします
*.nomatch
行を逆順にします
*.nomatch
指定した列を抽出します。
SelectColumns [範囲]
SelectColumns [-v] [-i] [-g] [-e パターン]
範囲抽出する列範囲のリスト (例 -3,5-10,30-)
パターン正規表現
-vマッチしない列を抽出します
-i大文字小文字を無視します
-gグローバルフラグを有効にします
-eパターンマッチングにpatternsを使用します
*.nomatch
指定した行を抽出します。
SelectLines [範囲]
SelectLines [-v] [-i] [-e
パターン]
範囲抽出する行範囲のリスト (例 -3,5-10,30-)
パターン正規表現
-vマッチしない行を抽出します
-i大文字小文字を無視します
-eパターンマッチングにpatternsを使用します
*.nomatch
テキストを置換します。
Replace [-i] [-e] [text_to_find] [text_to_replace]
検索するテキスト検索するテキスト
置換するテキスト置換するテキスト
-i大文字小文字を無視します (-e指定時のみ有効)
-e指定したテキストを正規表現として扱います
*.nomatch
トークン分割を行います。
Tokenize [パターン]
パターントークン分割に使用する正規表現 (例 [^\w]+)
*.nomatch
行頭行末の空白を削除します
*.nomatch
このプラグインは、指定された列の文字を無視します。 最初の列の番号は1です。
このプラグインはタブ付きのファイルをサポートしていないことに注意してください。 プラグインは失敗しませんが、すべてのタブは通常の文字として扱われます。
列を指定するには、プラグイン設定ダイアログを使用するか、次のフィールドをパラメーターとして使用してdllの名前を変更します:
例1 IgnoreColumns の例
IgnoreColumns _ 3 _ 10 - 20 _ 32 - 33.dllIgnoreColumns_1,30 ~ 40.dll*.txt
このプラグインはC言語, C++, PHP, JavaScript ファイルの //... と
/* ... */ で区切られたコメントを無視します。
*.cpp、*.cxx、*.h、*.hxx、*.c、*.php、*.js、*.cs、*.ts
このプラグインは、フィールドとコンマを区切り文字として使用するファイル用です (CSVファイルなど)。 区切り文字は無視されます。 最初のフィールドの番号は1です。
区切り文字を指定するには、プラグイン設定ダイアログを使用するか、 「IgnoreColumns」に使用されるのと同じパラメーターフィールドを使用して dllの名前を変更します。
*.csv
このプラグインは、フィールドとタブを区切り記号として使用するファイル用です (たとえばExcel
ファイルは*.txt形式で保存されます)。
区切り文字は無視されます。 最初のフィールドの番号は1です。
区切り文字を指定するには、プラグイン設定ダイアログを使用するか、 「IgnoreColumns」に使用されるのと同じパラメーターフィールドを使用して dllの名前を変更します。
*.txt
このプラグインは、テキストファイル (NCファイルやBASICファイルなど)の先頭の行番号を無視します。
*.nc
いくつかの関数を → メニューに追加します: