EmEditor v23.0.2 を公開しました

本日、EmEditor v23.0.2 を公開しました。

v23.0.2 は、次の不具合修正を含みます。

  • 既定の設定でマクロが動作しないことがある不具合を修正しました。新バージョンは、複数のグループ ウィンドウが存在していても、単一の Webブラウザに制限しました。

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

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

EmEditor v23.0.1 を公開しました。

本日、EmEditor v23.0.1 を公開しました。

v23.0.1 は、次の不具合修正を含みます。

  • ファイルをアラビア語や US-ASCII など特定のファイル エンコードで開くとクラッシュすることがある不具合を修正しました。
  • 複数のグループ ウィンドウで Webブラウザを表示しようとするとクラッシュすることがある不具合を修正しました。

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

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

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

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

本バージョンは、従来の慣習を踏襲すると、本来は v22.6 と呼ぶのが相応しいのですが、本バージョンでは変更点が多く真にメジャーな更新であること、さらに本年最後のメジャーな更新になる予定であることから、今年 2023 年の下2桁に合わせて、今回は v23.0 と呼ぶことにしました。

最近、ChatGPT を含む生成 AI の進展により、様々な情報やサービスを Webブラウザを通して利用できるようになってきました。例えば、文章の翻訳や校正はもちろん、執筆からプログラム開発まで、より多くの分野に広がっています。こちらのお客様を含め、EmEditor のお客様の間には、外部ブラウザを使用しなくても、それらの Webサイトに EmEditor 内で使用したいと要望されるユーザー様が増えています。新バージョンでは、EmEditor ウィンドウ内のカスタム バーに Webブラウザを表示する機能を追加しました。この Webブラウザは、マクロと組み合わせて使用するように設計されているため、エディタ内の文書の一部を Webブラウザで表示されているサイトに送信したり、逆に、サイトの一部をエディタ内に取り込むことができるようになりました。注意点として、これらの機能を利用するには、[マクロのカスタマイズ] ダイアログの [オプション] ページで [JavaScriptエンジンとしてV8を使用する] が選択されているか、あるいは各マクロの最初の行に


#language = "V8"

の1行が指定されている必要があります。

具体的には、次の 2 つの機能が追加されています。

(1) web. キーワード: HTML の Document Object Model (DOM) にアクセスするには、小文字で web. キーワードを使用します。この背景には、EmEditor 内のオブジェクトと Webブラウザ内のオブジェクトを区別する必要が発生したためです。例えば、マクロで、


document.write( "テスト" );

と記述すると、EmEditor エディタ内に「テスト」と表示したいのか、あるいは Webブラウザの HTML に「テスト」と表示したいのか、区別がつかなくなります。そこで、Webブラウザで「テスト」と表示させたい場合には、document の前に web. を追加して、


// Webブラウザで「テスト」と表示
web.document.write( "テスト" );

と記述して実行します。このように指定すると、web. で始まるキーワードは Webブラウザで実行される命令だと解釈され、DOM にアクセスできるようになります。DOM を利用すると、例えば次のようなことが可能となります。


// 現在表示されている Webページの URL を返します
alert( web.location.href );

// ブラウザの優先言語を返します
alert( web.navigator.language );

// 現在表示されている Webページのテキストを新規文書に貼り付けます
editor.NewFile();
write( web.document.documentElement.innerText );

// 現在表示されている Webページの HTML を新規文書に貼り付けます
editor.NewFile();
write( web.document.documentElement.outerHTML );

(2) onLoad イベント: 最後に実行したマクロに function onLoad() から始まる関数が記述されている場合、Webページの更新や新ページのロードが完了時に、一度だけ呼ばれます。この機能を利用して、例えば、検索サイトで検索結果を取得することが可能になります。onLoad() を利用すると、例えば、次のようなことが可能となります。


function onLoad() {
    // HTML を取得して新規文書に貼り付けます
    editor.NewFile();
    document.write( web.document.documentElement.outerHTML );
}

Bing.jsee マクロ例では、Bing で検索した結果の HTML を取得し、その HTML を正規表現を使用して必要な情報のみを取得して表示する方法を示しています。ただし、注意点としては、検索サイトによっては Webページの更新や新ページのロードが行われないこともあることです。例えば、ChatGPT の無料サイトがその一例であり、そのようなサイトでは onLoad() イベントが発生しないため、残念ながら本イベントを利用して検索結果を取得することができなくなります。しかしながら、江村誠は、MutationObserver インターフェイスを使用して、特定の HTML エレメントを監視し、変更が発生したときにテキストを取得するというアイディアを思いつきました。ChatGPT.jsee マクロ例では、このインターフェイスを使って、ChatGPT からの回答を取得する方法を示しています。このマクロをそのまま実行すると、選択したテキストが ChatGPT のプロンプト ボックスに入力されるのみですが、99~100行目のコメントを解除すると、テキストを実際に送信します。免責事項:Bing および ChatGPT の応答のフォーマットは、将来、いつでも変更される可能性があり、その結果、このマクロの動作に影響を及ぼす可能性があります。このマクロは、EmEditor v23.0 の新機能を紹介することを唯一の目的としています。将来、これらのマクロが動作する保証はいたしません。

v23.0 のもう1つの主要な変更点は、巨大ファイルを扱う場合の高速化です。EmEditor のお客様の中には、数GB の巨大 CSV ファイルを扱うお客様が多くいらっしゃいます。そのような場合でも、EmEditor が軽快に速く動作しなければなりません。私は約 2GB の CSV ファイルを開いて、実際に様々な操作のテストを繰り返して、それらの操作が私のマシンでほぼ 1 秒以内に完了するように、多くのコマンドをマルチスレッド化して高速化しました。

CSV ファイルの列単位での削除や挿入といった操作を行うと、ファイルの全行が変更されるため、行単位で管理しているテキストエディタとしては、膨大な変更量を処理しなければなりません。従来のバージョンでは、巨大ファイルを扱う場合、変更行は一時ファイルに保存することによってシステム メモリの使用を抑えていましたが、全行をディスクに保存することになるため、非常に時間がかかっていました。v23.0 では、変更行を一時ファイルではなくメモリに保存することにより、より高速に動作するようになりました。ただ、この方法だとメモリが少ないシステムでは、かえって遅くなったり、システム メモリ不足でエラーが発生する場合があります。その場合には、[カスタマイズ] ダイアログの [高度] ページで、[編集時、一時ファイルを使用する] オプションを設定すると、従来の動作と同じ動作に戻ります。

これら 2点の改良を組み合わせることにより、CSV の列の削除、列の挿入、列の結合、列の並べ替え、列の貼り付け、その他、多くの CSV の列に対する操作が、v22.5 に比べて、約 21倍から 34倍に高速化しました

CSV コンバーターにおいても、従来のバージョンではマルチスレッド化していなかったため、巨大ファイルを扱うと動作が遅くなっていました。新バージョンではマルチスレッドと SIMD を使用して、より高速に動作するように改善し、数 GB のファイルであっても CSV フォーマットの変換が数秒以内に動作するようになりました。

さらに、日本語 (JIS) や日本語 (EUC) では、従来の Windows API の 1種である MultiLanguage オブジェクトの使用をやめて、独自のルックアップ テーブルを使用することにより、不正文字の検出ロジックを改善するとともに、ファイルを開いた後、検索などの多くの動作を大幅に高速化することができました。

v22.5 では、行番号の左端をクリックして、ブックマークの表示/非表示を切り替えられるようになりましたが、これがかえって不便だというあるお客様の要望により、この機能を無効にできるオプションを追加しました ([カスタマイズ] ダイアログボックスの [マウス] ページの [行番号の左端をクリックしてブックマークの表示/非表示を切り替え])。さらに、Markdown の設定では、Markdown 用の特別な構文を追加することにより、太字、斜体などの強調表示が、より正確に表現できるようになりました。

江村誠は、言語サーバー プロトコルを使用して、プログラム コードの選択範囲または文書全体をフォーマットを行う機能を追加しました。例えば、行頭のタブまたは空白の数、かっこ () または {} の表示位置や空白の有無などの揺れを無くして、見やすくするためのコマンドです。あらかじめフォーマットしたいコードを選択してから、[変換] メニューの [フォーマット] を選択すると、選択範囲をフォーマットします (ショートカット: Ctrl+K, F)。コードを選択しないで実行すると、全文書を選択するかどうかを選択するダイアログが表示されるので、そこで [継続する] を選択すると、文書全体をフォーマットします。または、Ctrl+K, D と押すことにより文書全体のフォーマットを行います。フォーマット コマンドを有効にするためには、設定のプロパティの [言語サーバー] ページで、[言語サーバー プロトコルを有効にする] オプションが設定されていて、その下の [文書タイプ] ドロップ ダウン リスト ボックスで使用する言語が選択されている必要があります。ここに記載されていないプログラミング言語については、EmEditor では対応していません。また、フォーマットの方法、例えば、カッコ内の空白の有無など、ユーザー毎に好みの異なる設定については、すべて言語サーバー側に依存されており、行頭のタブまたは空白の数を除き EmEditor 側で変更することはできません。

なお、本バージョンより、言語サーバー プロトコルの「(試験的)」の記述が無くなり、正式な機能となりました。それに伴い、C++、CSS、HTML、JavaScript、JavaScript for EmEditor、Perl、Python の設定では、言語サーバー プロトコルは既定で有効に設定されます。しかし、不要な場合には、設定のプロパティの [言語サーバー] ページで、いつでも無効にすることができます。

誠は、[コミット リスト (Git)] プラグインの変更サイド バーに [サブ モジュールの更新] オプションを追加して、サブ モジュールから変更をプルできるようになりました。また、予期される動作に関する混乱を避けるために、ステージング済みファイル一覧 (ステージングされていないファイルではない) から [変更を元に戻す] メニュー項目を削除しました。

さらに、従来のヘルプは古いシステムを使用していたため、デザインがあまり良くなく、保守が難しいという難点がありました。誠は、Sphinx を使用して、ヘルプのリデザインを思い付き、私共は、その変更を行いました。新しいヘルプは、GitHub の弊社のページ で保守、ビルドされています。

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

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

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

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

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

EmEditor v22.5.2 を公開しました。

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

v22.5.2 は、次の不具合修正と改善を含みます。

  • ツール チップ上の [変換] に関する不具合を修正しました。
  • ファンクション バーに関する不具合を修正しました。
  • 様々なクラッシュの可能性を修正しました。

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

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

EmEditor v22.5.1 を公開しました。

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

v22.5.1 は、次の不具合修正と改善を含みます。

  • ツール チップ上の [すべて変換] に関する不具合を修正しました。
  • ファンクション バーに関する不具合を修正しました。
  • ファイル変更通知に関する不具合を修正しました。
  • 様々なクラッシュの可能性を修正しました。

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

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

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

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

最近、私は第13世代の Intel Core i7-13700 を搭載したPCを購入しました。第12世代の Core プロセッサー以降、Intel はパフォーマンスのための Pコアと効率のための Eコアを組み合わせたハイブリッド アーキテクチャを導入しました。新しいアーキテクチャは興味深いもので、Pコアは Eコアよりも高速に動作します。EmEditor の以前のバージョンでは、すべてのスレッドが同じ速度で動作すると仮定していました。しかし、Pコアのスレッドが Eコアのスレッドよりも高速に動作すると、Pコアのスレッドは Eコアのスレッドよりも早くタスクを終了し、Eコアのスレッドがタスクを終了するまで待つ必要があります。念のためですが、Eコアと Pコアがなくてもスレッドの速度は変動することがあります。例えば、スレッドがバックグラウンド アプリやシステム プロセスによって中断されると、そのスレッドは他のスレッドよりも遅くなります。それでも、Pコアと Eコアの存在は状況を悪化させる可能性があります。

この状況を克服するために、v22.5 ではコードを最適化して、動的にスレッドの負荷分散を管理します。次の画面図は、巨大ファイルで正規表現を検索している間の CPU 使用率を示しています。最適化後、タスク終了時に全体的なCPU使用率が急激に下がっているのがわかります。

以前のバージョン (v22.4.2) は、各スレッドが同じ速度で動作すると仮定しています。その結果、スレッドによっては他よりも早く終了してしまい、全体の CPU 使用率は、検索タスクの終了に近づくにつれて、ゆっくりと減衰します。
新バージョン (v22.5) は、スレッドの負荷分散を動的に管理するので、タスクを終了するまで、全スレッドが効率的に動作します。全体の CPU 使用率はタスクの最後に突然下がります。結果として、タスクを終える時間は短くなります。

v22.5 の開発中、私共はコードを最適化して多くのコマンドの速度を向上させるために多くの時間を費やしました。例えば、マルチスレッディングによって [コピー] コマンドの速度が 1.49 倍に高速化されました。リファクタリングと最適化中にコードを見直す機会がありました。古いバージョンでは、CPU が AVX-512 命令セットをサポートしていない場合、誤って SHA 命令セットが有効化されませんでした。v22.5 ではこのバグを修正し、AVX-512 をサポートしていない多くの CPU でも [重複行の削除] コマンドなどの複数のコマンドの速度が向上しました。今後もコードを見直し、速度向上のために最適化していく予定です。

新しい PC を使って Visual C++ でコードをビルドした時、ビルドが非常に遅いので、私は落胆しました。実はコードをビルドするときにメモリ使用率が 100% に達していたのです。これは、物理メモリ (RAM) が 16GB しか利用できなかったためですが、CPU には 24 個の論理コアがあり、Visual C++ は 24 個のスレッドを使用してコードをビルドしていました。Visual C++ のオプションでスレッド数を 24 から 7 に調整すると、コンパイラはコードをより速くビルドできました。同様に、EmEditor は既定の 24 個のスレッドを使用するよりも 3 個だけのスレッドを使用した方が速くなりました。物理メモリを 16GB から 80GB に増やすと、両方のアプリは 24 個のスレッドで最高速になりました。したがって、論理コア数が多い最新の CPU をお持ちでしたら、物理メモリを増やすことを強くお勧めします。例えば、CPU に 24 個の論理コアが存在する場合、PC には少なくとも 32GB の物理メモリを推奨します。メモリが充分でない場合は、スレッド数を調整する必要があるかもしれません。これは EmEditor のカスタマイズ ダイアログ ボックスの [高度] ページで指定できます。v22.5 では、論理コアの数がこの GB 値を超える場合、既定のスレッド数を物理メモリの最も近い GB 値に調整しました。

あるお客様からファイル変更検知の改善要求をいただきました。古いバージョンでは既定で5秒ごとに現在のファイルサイズとタイムスタンプをチェックし、ファイルが変更されたと判断すると、メッセージボックス「別のプログラムによってファイルが変更されました。変更を反映して再読み込みしますか?」が表示されます。v22.5では、Windows API を使用して、より効率的にファイル変更を検知します。

別のお客様からは、行番号の左端をクリックしてブックマークの設定/解除を行う機能が欲しいとのご要望がありました。古いバージョンでは、[ブックマークを設定/解除] コマンドを選択するか、Ctrl+F2 を押してブックマークのオンとオフをり替える必要がありました。確かに、行番号をクリックする方が簡単ですし、テキスト エディターの中でもこの動作が一般的になってきているので、本機能を採用しました。

江村誠は [シンボルを検索] コマンドで言語サーバー プロトコルを使用する機能と JSON 言語サーバーを使用する機能を追加しました。また、コミット リスト プラグインを改善し、[プル] ボタンと [プッシュ] ボタンに、コミット数のインジケーターを追加しました。

近い将来、Windows 7、8.1、および Server 2008 R2 のサポートを終了する予定です。Microsoft はすでにこれらのバージョンの Windows のサポートを停止しています。セキュリティ上の理由から、これらの古いバージョンの Windows の使用は強くお勧めしません。また、EmEditor の 32ビット版の開発も終了する予定です。私共は、EmEditor の 64ビット版の開発およびテストにリソースを集中させたいと考えています。

私共は多くの皆様に EmEditor を使用していただきたいと考えており、EmEditor の価格はできるだけ低く抑えています。年間サブスクリプションの初年度価格、40米ドル(以前は 39.99米ドル)は、年間サブスクリプションのライセンスを開始して以来、1セント以上変更していません (日本円価格は、外国為替により変動があります)。しかし、私共は EmEditor Professional の違法使用は許容しません。EmEditor Professional の「クラック」キーを販売または提供しているウェブサイトがいくつかあります。これらは違法なサイトであり、これらのサイトから入手したキーは私共からサポートされることありません。私は時々、実際には有効なライセンスを持っていないにもかかわらず、平気で EmEditor Professional についての技術的な質問をされることがあります。私は有効なライセンスを購入したお客様をサポートするために時間を使いたいと思っています。これらの違法なサイトを根絶し、さらに重要なこととして、EmEditor の開発とお客様のサポートを継続するため、私共はライセンスの正当性を弊社のサーバー上のデータベースでチェックするコードを追加し、ライセンスが有効でない場合、そのコードは Professional バージョンの動作を停止させます。このチェックは EmEditor を起動するとすぐに行われるわけではありませんし、EmEditor を起動するたびに行われるわけでもありません。コードの性質と目的上、コードがどのように動作するか詳細は公開しません。ただし、個人情報は送信されず、このチェックはインターネット接続がなくても EmEditor を使用することを妨げません。私共にとってソフトウェアを保護することが重要であり、有効なライセンスを購入したお客様も同様に保護したいと思っています。私共は、お客様がこの背景の理由を理解してくださり、この最小限のライセンスのチェックを受け入れてくださることを願っています。また、ライセンス数の計算方法も参照して、必要充分な数のライセンスを所有しているか確認してください。

別のブログで、ライセンスの価格改定と、永久ライセンスの販売終了についてお知らせいたします。

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

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

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

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

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

EmEditor v22.4.2 を公開しました。

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

v22.4.2 は、次の不具合修正と改善を含みます。

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

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

EmEditor v22.4.1 を公開しました。

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

v22.4.1 は、次の不具合修正と改善を含みます。

  • Shift を押しながらマウス ホイールを回転する場合の水平方向の変化量を調節しました。
  • \J 置換表現を含む [ファイルから置換] の動作を修正しました。
  • [ファイルから置換] がステータス バーに置換数表示しなかった不具合を修正しました。
  • 箱型選択のドラッグ アンド ドロップでコピーまたは移動ができるようになりました。
  • 巨大 CSV ファイルで、[列の削除]、[値をクリア]、その他の変換コマンドで異常終了する可能性がある不具合を修正しました。
  • [元に戻す] 後の CSV 列の調節に関する問題を修正しました。
  • [出力方法] が [直接開く] 場合、[ファイルから検索] コマンドで異常終了する可能性がある不具合を修正しました。
  • [水平に分割] オプションが選択されていない場合、[比較] コマンドでフリーズする可能性がある不具合を修正しました。新バージョンは、[水平に分割] オプションが選択されていない場合、変更行の文字毎の強調表示は行わなくなりました。
  • CSV モードで行ヘディングが有効な場合の表示上の問題を修正しました。
  • CSV セル選択モードで行ヘディングが有効な場合の Left キー、Home キーの移動を改善しました。

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

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

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

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

新バージョン (v22.4) では、低速ドライブまたはネットワーク ドライブから巨大ファイルを開くときの動作とステータス メッセージを改善しました。以前のバージョンは、高速ハード ドライブまたは SSD から巨大ファイルを開くために最適化されていました。ファイルの内容を読み取るために大きなサイズのメモリ ブロックが割り当てられ、そのメモリ ブロックの処理中は、ステータス バーまたは巨大ファイル コントローラ上に進捗状況を更新しませんでした。この方法は、高速ハード ドライブまたは SSD から巨大ファイルを読み取る場合にはうまく動作しますが、低速ドライブやネットワーク ドライブからファイルを読み込む場合には、プログラムがフリーズして応答していないように見えることがありました。新バージョン v22.4 では、ファイルを開いた時、まず最初の 1MB を読み取るのにかかる時間を測定します。そして、読み取り速度を推測して、ステータス バーと巨大ファイル コントローラーの進行状況を、何バイト毎に更新するべきかを推測します。この新しいアルゴリズムにより、EmEditor は、高速ドライブの高速読み取り速度を維持しながら、低速ドライブの進捗状況をより頻繁に表示できるようになりました。

v22.4 では [ファイルから検索] の動作速度を向上させ、[ファイルから検索] を中止するときの応答時間も改善しました。これは、最適化されたマルチスレッド コードを使用して全体の速度を向上させながら、検索中止の要求に応答するために、ファイル内を複数のゾーンに分けて検索することで可能になりました。私共のテストでは、[ファイル内検索] が v22.3 と比較して 2.76 倍高速になりました。v22.4 では、[列の削除] (CSV)、[値をクリア] (CSV)、[ランダムに並べ替え]、Base64 エンコード/デコードのコマンドなどのコマンドの速度も向上しています。[値をクリア] (CSV) コマンドは、CSV セル選択モードで CSV セルまたは列を選択しているときに Delete キーを押すと、実行されます。これは、CSV の編集でよく使う操作ですが、このような操作を高速化したことにより、皆様の生産性が向上することを願っています。[ランダムに並べ替え] コマンドは、高速擬似乱数生成器 (Xoshiro-cpp) を使用することにより、さらに高速化することができました。

あるお客様は、[検索] ダイアログ ボックスに検索文字列を入力している時、一致した文字列の強調表示を更新する機能を要求されました。本機能は他のエディターでも使用していたので、v22.4 でも追加することにしました。本機能は既定ではオフになっていますが、[検索] ドロップ ダウン リスト ボックスの横にある [>] ボタンをクリックすると表示されるメニューで [自動ハイライト] を選択すると有効にできます。このオプションがオンの場合、[検索]/[置換]/[ファイル内検索]/[ファイルから置換] ダイアログ ボックスまたは [検索] ツール バーを表示している間のみ、検索の強調表示がオンになります。本機能は EmEditor Professional および EmEditor Free で利用できます。

他の複数のお客様は、複数行のテキストを選択し、エディタ ウィンドウの下端を超えてマウスをドラッグする (マウスの左ボタンを押しながらマウスを動かす) ときの垂直スクロールの改善を求められていました。下にスクロールすることを望まれるユーザーと、文書の最下部までジャンプすることを望まれるユーザーがいました。また、一部のお客様は、例えば、300万行の文書の 100万行目から 200万行目までを選択したいといった場合のように、文書の中間の多数の行を選択することを望まれます。これらすべてのユーザーのご要望にお応えするために、v22.4 では、以下で説明するように、マウスをドラッグするときの新しいスクロール モードと、新しいマウス ポインタの形状が導入されました。

まず、v22.4 では、マウスをエディタ ウィンドウの端を越えてドラッグすると、マウス ポインタの形状が変わります。マウス ポインタをウィンドウの端から遠ざけるほど、スクロール速度は速くなります。さらに遠ざけると、スクロールはスクロール ボックス (サム) をドラッグしているかのように動作します。このモードでは、選択範囲の終点をドキュメント内の任意の位置に簡単に移動できます。既定では、このモードに入るとミニマップが表示されます。マウスの左ボタンを押したまま ESC キーを押すと、通常の選択モードに戻ります。この機能は EmEditor Professional および EmEditor Free で利用できます。

江村誠は、言語サーバー プロトコル (LSP) を使用した構文チェック機能を追加しました。この新機能は、JavaScript や他の言語でも利用できるため、JavaScript で記述されたマクロの構文もチェックできるようになりました。本機能は EmEditor Professional でのみ使用できます。

また、彼は、コミットをチェックアウトして新しいブランチを作成する機能を追加することで、CommitList プラグインも改良しました。本機能も EmEditor Professional でのみ使用できます。

さらに、ランダムな文書とパラメータを使用して EmEditor の機能をテストするための新しいテスト スクリプトを作成し、[列の分割] コマンドなどで、既にいくつかのバグを発見しています。このようにして未知のバグを探して修正しています。

以前「ベータ」と呼ばれていたバージョンは、これからは「プレビュー」バージョンと呼ぶことにしました。これは、「ベータ」と聞くと不安定だと思われる方が多いためですが、継続的にバグを修正しているため、実際には、正式版よりもベータ版の方が安定していることが多いのです。また、より多くのユーザーに新バージョンの新機能を試していただきたいため、新バージョンは「ベータ」ではなく「プレビュー」と呼ぶべきであると考えました。できれば「プレビュー」バージョンを含めて常に最新版に更新してお使いになることを推奨いたします。

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

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

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

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

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

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

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

クラッシュ レポート機能を改善して以来、多くのユーザー様からクラッシュ レポートを受信し、原因を調べるために長時間を費やしました。幸いにも、多くのクラッシュは解決し、少しでも早く被害を受けたお客様を救済するため、v22.2.0 と v22.3.0 との間でマイナーな更新を頻繁に行いました。クラッシュ報告機能に、さらに多くの情報を追加して、より多くのクラッシュの原因を見つけることが可能になりました。それらのクラッシュ レポートと修正で、最近のバージョンではクラッシュ レポートの受信は少なくなりました。クラッシュ レポートを送信していただいたユーザーの皆様に感謝いたします。最新版では、信頼性と頑強性が向上していますので、すべてのお客様に最新版への更新を推奨します。クラッシュ レポート機能は、EmEditor Professional と EmEditor Free で利用可能です。

巨大ファイルを開いた直後のバックグラウンド CSV 構文チェックが実行中に、検索/置換コマンドを実行すると、場合によっては、クラッシュが発生することがわかりました。そこで、検索/置換コマンドは、バックグラウンド CSV 構文チェックが完了するまで、待つべきだと結論を出しました。新バージョンでは、既定では、検索、置換、その他の操作の前には、CSV 構文チェックを中止するかどうかを確認するメッセージ ボックスを表示するようになりました。この確認メッセージは、[カスタマイズ] ダイアログの [CSVオプション] ページで、[CSV構文チェックがまだ実行中の時、確認メッセージを表示する] オプションを解除することにより、無効にすることができます。確認メッセージが無効の場合、検索/置換を実行しようとすると、バックグラウンド CSV 構文チェックは自動的に中止します。CSV に関連する機能は、EmEditor Professional のみで利用可能です。

EmEditor を開発するにあたり、様々な操作の速度は信頼性と同様に重要です。新バージョンは、[検索] ダイアログ ボックスの中の [抽出] コマンドの動作を、改善されたアルゴリズムを使用して高速化しました。私共のテストでは、[抽出] コマンドは、v22.2.0 と比較して、3.46 倍に高速化しています。これらのコマンドは、EmEditor Professional のみで利用可能です。

あるお客様は、数字の千の位に桁区切り文字が含まれていても、合計を表示する機能を要望されました。例えば、選択テキストが、以下だったとします。

1,001.5 2,001.1

従来のバージョンでは、カンマ (,) は、数字の一部として認識されないため、合計は 1 + 1.5 + 2 + 1.1 = 5.6 となり、ステータス バーには、「5.6」 と表示されていました。

新バージョンでは、[カスタマイズ] ダイアログ ボックスの [並べ替え] ページに新しく追加された [桁区切りを許可する] オプションを設定すると、合計は、1001.5 + 2001.1 = 3002.6 となり、ステータス バーには、「3,002.6」と表示されます。実際の区切り文字は、現在のロケールに依存し、それも同ページで設定できます。例えば、現在のロケールが、「ドイツ語 (ドイツ)」の場合で、選択テキストが以下だったとします。

1.001,5 2.001,1

すると、ステータス バーに 「3,000.6」と表示されます。ステータス バーに表示される数字の形式は、Windows のロケールに依存します。

桁区切り文字は、3桁毎 (千、百万、十億…の位) に現れている必要があります。EmEditor は、現在、2桁や4桁の区切りの形式はサポートしていません。例えば、選択テキストが次の通りだったとします。

1,04 2,0005

カンマは千の位置では無いため、単に異なる4つの数字の区切りとしてみなされます。そのため、EmEditor は、「12」 (= 1 + 4 + 2 + 5) と表示します。

桁区切り文字を含む数字を解析する機能は、[小さい値から大きい値へ並べ替え] コマンドと [大きい値から小さい値へ並べ替え] コマンドにも拡張しました。

さらに、v22.3 では、数値範囲表現も、桁区切り文字を含む数字に一致することができるようになりました。例えば、次の数値範囲表現があったとします。

[ 1000.0 , 2000.0 ]

この表現は、以下の両方の数字に一致します。

1203,3

1,203.3

数値範囲表現では、現在のロケールとは独立して、小数点を指定することができます。桁区切り文字が小数点と同一だった場合、小数点の方が桁区切り文字より優先度が高くなり、桁区切り文字は使用されなくなります。例えば、選択ロケールが英語 (米国) で、次の数値表現があったとします。

[ 1000,0 , 2000,0 "," ]

この表現は、以下の数字に一致します。

1203,3

しかし、以下の数字には一致しません。

1,203,3

既定では、EmEditor の以前のバージョンと互換性を保つため、桁区切り文字は無効になっています。上記の桁区切り文字に関するすべての機能を有効にするには、[カスタマイズ] ダイアログ ボックスの [並べ替え] ページで [桁区切りを許可する] オプションを設定する必要があります。このオプションは、EmEditor Professional のみで利用可能です。

他のお客様は、ファイルをバックアップ中、ISO日付/時刻フォーマットでファイル名を変更したり、隠しファイル属性/読み取り専用属性を設定する機能を要望されました。これらのオプションは、設定のプロパティの [バックアップ] ページで利用可能になりました。時刻は常に、協定世界時 (UTC) であり、システムのタイム ゾーンを変更してもファイル名の衝突が起きないようにしています。例えば、

filename.txt

のバックアップは、同フォルダーに同名のファイルが既に存在している場合

filename_2023-04-09T180943.2016212Z.txt

と名前を変更して保存されます。これらのバックアップの新しいオプションは、EmEditor Professional と EmEditor Free で利用可能です。

江村誠は、言語サーバー プロトコル (LSP) をサポートしました。この機能は、このお客様を含む複数のお客様により要望されていました。v22.3 は、LSP の多くの機能の中で、ツールチップの機能だけをサポートしています。これは、関数名やそのほかのシンボル上にマウス ポインターを置くと、ツールチップとして簡単な説明を表示する機能です。将来の EmEditor のバージョンでは、さらに多くの LSP の機能をサポートする予定です。現在のところ、サポートするプログラミング言語は、HTML、CSS、JavaScript、Perl、C/C++、Python ですが、将来は、より多くのプログラミング言語をサポートする予定です。プログラミング言語によっては、追加の言語サーバーのインストールが必要になります。設定のプロパティの [言語サーバー] ページで、[?] ボタンをクリックするか、F1 を押すと、追加インストールについての説明を含むヘルプが表示されます。LSP の機能は、既定では、無効になっているため、新機能を使用するには設定のプロパティの [言語サーバー] ページで、[言語サーバー プロトコルを有効にする (試験的)] オプションを設定する必要があります。LSP は、EmEditor Professional のみで利用可能です。

誠が開発している [コミット リスト] プラグインは、サイドバーのリストで、複数選択を可能にして改善しました。この改善により、複数のファイルを同時にステージしたりアンステージすることができます。

最後に、誠は、WebPreview プラグインを改善して、Markdown ファイルをプレビュー表示できるようにしました。この機能は、複数のお客様 (1, 2) により要望されていました。Markdown ファイルをプレビュー表示するには、EmEditor の既定の設定の 1つである「Markdown」の設定が選択されている必要があります。プラグインは、EmEditor Professional のみで利用可能です。

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

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

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

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

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