EmEditor v22.0.0 を公開しました (テクニカル レビューを含む)。

本日、EmEditor v22.0.0 を公開いたしました。

EmEditor v22.0 の主要の機能は、「あいまい一致」で、類似文字列の一致を利用して検索、フィルター、CSVの結合などを実現し、Professional 版では、さらにカスタマイズ可能です。この機能は、複数のお客様 (1, 2, 3) から要望されていました。EmEditor Professional では、この機能には複数のオプションを含んでいますが、EmEditor Free では [類似する文字列に一致] オプションのみが利用可能です。[類似する文字列に一致] オプションは、レーベンシュタイン距離、または編集距離と呼ばれる方法を使用して、2個の文字列がどの程度、類似しているかを計算します。すなわち、EmEditor は、2個の文字列を比較し、ある文字列を別の文字列に変換するまで、何ステップの編集が必要かを数えます。例えば、2個の文字列が以下だったとします。

「あいみい一致検索」 と 「あいまい一致の検索」

最初の文字列の 3文字目の「み」は「ま」に置き換える必要があり、7文字目の「検」の前に「の」を挿入する必要があります。したがって、これらの文字列の間の編集距離は 2 となります。

EmEditor Professional の [検索] ダイアログ ボックスで [あいまい一致] チェック ボックスを選択すると、[あいまい一致のオプション] ダイアログ ボックスが表示します。そこで、[類似性レベル] と [最大編集距離] オプションを使用して、どの程度の類似性が一致かを決定することができます。例えば [類似性レベル] が [3/4 (75%)] だとすると、一致するためには 4文字毎に 1編集距離までで、かつ [最大編集距離] で指定された値を超えない編集距離が許されます。つまり、文字列が 4文字以上であれば 1編集距離まで、8文字以上であれば 2編集距離までが許されます。

EmEditor Professional では、さらに多くのオプションがあいまい一致機能で利用可能です。次のオプションはすべて前述した [類似する文字列に一致] オプションを設定せずに使用することができます。[発音区分符号、濁点、半濁点などの前進を伴わない結合文字を区別しない] オプションは、発音区分符号、濁点、半濁点、その他の前進を伴わない結合文字 (後述する絵文字シーケンスを除く) を無視したい時に特に便利です。このオプションは、例えば、以下の文字列は同一とみなされます。

「e」と「é」
「c」と「ç」
「ハ」と「パ」

このオプションを選択すると、EmEditor は両方の文字列に Unicode正規化形式 (正準分解) を適用してから比較し、比較時に前進を伴わない結合文字を無視します。

[絵文字シーケンスを無視する] オプションは、シーケンスの最初のコード値を除いて、絵文字シーケンスの違いを無視します。例えば、

「👨‍🦰」(赤髪男、U+1F468 U+200D U+1F9B0)
と
「👨‍🦳」(白髪男、U+1F468 U+200D U+1F9B3)

は同一とみなされます。

[文字列/文字範囲] オプションは、文字列の類似性を定義するにおいて高度な柔軟性を実現します。例えば、長音符「ー」を無視すると指定すると、次の 2個の文字列は区別されなくなります。

「エディター」と「エディタ」

アンパサンド「&」を無視すると指定すると、次の 2個の文字列は区別されなくなります。

「fuzzy」と「fu&zzy」

Unicode用字、Unicode一般カテゴリ、文字コードの最小値と最大値、またはこれらの組み合わせにより文字範囲を指定することもできます。例えば、Unicode一般カテゴリとして「Pc,Pd,Pe,Pf,Pi,Po,Ps」を無視すると指定すると、文字列内のすべての句読点が無視されます。そこで、次の 2個の文字列は区別されなくなります。

「Emurasoft, Inc.」と「Emurasoft Inc」

[あいまい一致のオプション] ダイアログ ボックスには、さらに多くのオプションが利用可能です。詳しくは、ヘルプをご参照ください。

[検索] または [フィルター] コマンドで [あいまい一致] オプションを使用すると、あいまいに一致したけれど完全には一致しない文字列は、青い波線の下線で区別して表示されます。将来のバージョンの EmEditor では、マウス ポインターをこれらの青い波線の下線の上にポイントすると、ツールチップを表示して、これらのあいまい文字列をコピーまたは修正できるようになるでしょう。

[あいまい一致] オプションは、[検索]、[置換]、[ファイルから検索]、[ファイルから置換]、[連続検索]、[連続置換]、[ファイルから連続検索]、[ファイルから連続置換]、[CSVの結合] ダイアログ ボックス、[検索]、[フィルター] ツール バーで使用できます。現在のところ、[あいまい一致のオプション] はアプリ全体の設定であり、これらすべてのダイアログ ボックスやツール バーで共有されます。

[CSVの結合] ダイアログ ボックスで [あいまい一致] オプションを使用すると、類似で一致した文字列で 2個の CSV 文書を結合することができます。例えば、次の 2個の CSV 文書があるとします。

ID    会社名
1     Emurasoft, Inc.
2     Microsoft Corporation
3     Apple Inc.
州    会社名
CA    Apple Inc
WA    Microsoft Corp.
WA    Emurasoft Inc

これらの 2個の CSV を会社名で結合したいとします。EmEditor の以前のバージョンでは、「Emurasoft, Inc.」が「Emurasoft Inc」と一致しないため、正しく結合することができませんでした。あいまい一致を使用すると、句読点を無視するように指定したり、「Corp」を「Corporation」として処理することができるため、結果は次のようになります。

ID    会社名                 州       会社名
1     Emurasoft, Inc.         WA      Emurasoft Inc
2     Microsoft Corporation   WA      Microsoft Corp.
3     Apple Inc.              CA      Apple Inc

[連続検索] または [連続置換] ダイアログ ボックスで定義されたすべての検索文字列に [あいまい一致] オプションを適用することもできます。リスト ボックスのすべての項目に [あいまい一致] オプションを設定またはクリアするには、リスト ボックスのすべての項目を選択して、右クリックしてメニューを表示すると、[あいまい一致] オプションのオンとオフを切り替えることができます。ただし、[あいまい一致] オプションは、検索文字列が非常に多い場合やファイル サイズが巨大な場合、検索速度を著しく低下させるので注意が必要です。

v22.0 のその他の機能として、メール メッセージ ヘッダーで使われる MIME Encoded-Word (Base64) を強調表示することができるようになり、お客様より要望されていました。たとえば、メッセージ ヘッダーに次の行が含まれているとします。

Subject: =?UTF-8?B?W0VtRWRpdG9yICjjg4bjgq3jgrnjg4jjgqjjg4fjgqPjgr8pXQ==?=
 =?UTF-8?B?IOOCqOODs+OCs+ODvOODieOBruWumue+qeOBq+aXouWumuWIhui/veWKoA==?=

EmEditor は、これらの行を強調表示し、マウス ポインターをヘッダーの上にポイントすると、ツールチップを表示して、元の文字列を表示したりコピーしたりすることができるようになります。

あるお客様は、クリップボード内の文字列がどのように貼り付けられるかをカスタマイズできる機能を要望されていました。箱型選択から文字列をコピーして通常のテキストに貼り付けると、結果は期待した通りにならない場合があります。この場合、貼り付けた後に表示されるクリップボード アイコンをクリックすると、[クリップボード履歴] ウィンドウが表示されます。先ほど貼り付けた文字列上で右クリックすると、コンテキスト メニューが表示され、そこで [文字で挿入]、[行で挿入]、[箱型で挿入]、[セルで挿入] コマンドを選択できるようになりました。

既定のメイン メニューはデザインが変更され、[挿入]、[変換]、[ブックマーク]、[並べ替え]、[プラグイン] ポップアップ メニューをトップに含むようになりました。お持ちのキーボードに発音区分符号用のキーが含まれていない場合、[挿入] メニューの中の [発音区分符号] サブメニューを使うと、対応するショートカット キーを覚えなくてもこれらの特殊文字を入力できるようになるため便利でしょう。既定のメイン メニューを使用されている場合、この変更を気に入っていただけると幸いですが、もし気に入っていただけない場合、[ツール] メニューの [メニューの変更] を選択して、いつでもメニューをカスタマイズすることも可能です。

v22.0 は、Unicode 15.0 をサポートしました。例えば、次の文字は、Unicode 15.0 で新たに追加された絵文字です。

🫨 U+1FAE8 (SHAKING FACE)
🩷 U+1FA77 (PINK HEART)
🫎 U+1FACE (MOOSE)
🛜 U+1F6DC (WIRELESS)

上の文字を正しく表示するには、Unicode 15.0 に対応したフォントが必要になりますが、EmEditor にこれらをコピー、貼り付けして、カーソルを各文字の左に置いて [文字コード値] コマンド (Ctrl+I) を使用すると、その正しい Unicode名を表示することができます。この更新は、[文字コード値] コマンドにより表示される Unicode名、Unicode用字、Unicode一般カテゴリに影響されます。また、文字の半角と全角の区別が East Asian Width により影響されます。しかし、Onigmo 正規表現エンジンは、現在のところ、以前のバージョンの Unicode に準拠しており、今回の更新には影響されません。

最後に、[コミット リスト] (Git) プラグインは、ブランチの比較機能を追加して更新され、さらに他の改善により使いやすくなりました。

Pro版、Free版とも お気に入りいただけましたら幸いです。将来、ご質問、機能のリクエスト、アイディアなどがございましたら、ご連絡いただくか、フォーラムにご発言ください。

今後も EmEditor を引き続きご愛顧くださいますよう、よろしくお願い申し上げます。
— 江村豊

主な変更点、画面図など、詳しくは、「Version 22.0 の新機能」をご覧ください。

さらに本リリースは、v22.0 を開発中の不具合/問題の修正を含みます

デスクトップ インストーラー版をご使用の場合、[ヘルプ] メニューの [更新のチェック] を選択して更新していただけます。この方法で更新できない場合には、最新版をダウンロードして、そのダウンロードしたインストーラーを実行してください。デスクトップ ポータブル版の場合、こちらよりダウンロードして、更新していただけます。ストア アプリ版の場合、数日後、Microsoft ストア (64ビット または 32ビット) よりダウンロードまたは更新していただけます。winget を使用されている場合は、”winget install emeditor” とタイプして最新版の EmEditor のインストールが可能です (64ビットか32ビットは自動検出されます)。