EmEditor v24.0.1 を公開しました

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

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

  • 設定のインポートおよびエクスポート時に、デバイスIDが別のコンピュータにコピーされる問題を修正しました。
  • セル選択モードなしで1列を選択した際、右側の区切り文字がコピーされない不具合を修正しました。
  • 不正な構文の CSV で列を選択し、変換(例えば、大文字に変換)すると、全行が変換されてしまう不具合を修正しました。
  • お客様により報告された不具合を修正しました (1, 2)。

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

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

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

前バージョンの v23.1 では、マクロから OpenAI の API を呼ぶことにより、生成 AI を使用する方法を紹介しました。生成 AI の呼び出しの引数には、通常、テキストが使用されます。つまり、テキスト エディターと生成 AI は親和性が高いとも言えるでしょう。テキスト エディターで文書を執筆する場合、生成 AI を使用する目的のひとつは、文書の校正です。この使い方の場合、校正前と校正後の文書を、簡単に比較し、どの部分の変更テキストを取捨選択するかを、簡単にできるようにしたいものです。本バージョンでは、文書を分割ウィンドウで比較した状態で、変更テキスト上で右クリックして表示されるコンテキスト メニューに、[他へコピー] コマンドを追加しました。これを選択すると、その変更部分が保持され、比較しているもう一方の文書にコピーされます。文書内のすべての変更を一度にコピーしたい場合には、分割ウィンドウのタイトル部分に新しく追加した [すべて他へコピー] ボタンをクリックします。

比較が終わったら、不要になった文書は閉じて、必要な文書だけ残したい場合があります。こういう時には、新しく追加した [X (閉じる)] ボタンをクリックすることにより、現在アクティブなペインの文書だけが閉じるようになります。また、Ctrl+W や Ctrl+F4 を押しても、現在アクティブなペインの文書だけが閉じるようになります。

ライブラリの ChatOpenAI.jsee マクロ例をさらに発展させ、AI.jsee に名前を変更して EmEditor に既定で追加しました。AI マクロを使用すると、選択テキストまたは文書全体に対して、校正、要約、翻訳、画像の生成などを行ったり、AI に質問することができます。このマクロを実行すると、最初に、OpenAI API キーの入力が求められます。OpenAI にログインされていれば、秘密の OpenAI API キーは、こちらから取得できます。次回からこのキーの入力をスキップするためには、環境変数 OPENAI_API_KEY を設定してください。

本バージョンでは、さらにお客様からいただいた多くの要望に応えました。

1. Onigmo 正規表現では、\Q...\E 構文をサポートしました。この構文を使用すると、正規表現のメタ文字を無効化し、エスケープする必要がなくなります。例えば、[a.c] という文字列を検索したい場合、従来の正規表現では、\[a\.c\] というように、メタ文字である "[", ".", "]" をバックスラッシュでエスケープする必要がありました。新バージョンでは、\Q[a.c]\E と記述することにより、メタ文字をエスケープする必要が無くなりました。なお、Boost の Regex では、従来から \Q...\E 構文をサポートしていました。

2. [次を検索]、[前を検索] コマンドで、重ならない文字列のみ一致するオプションを追加しました。これを簡単な例で説明しますと、次のようになります。例えば、AAAAA という文字列があったとします。そこで、AA を検索します。すると、最初の4文字の AAAA だけが強調表示されますが、[次を検索] (F3) コマンドを実行すると、1個ずつ検索位置がずれて表示されるため、最後の AA まですべて検索することができます。本バージョンで、[高度] ダイアログ ボックスの [次を検索/前を検索で重ならない文字列のみ一致する] チェック ボックスを設定すると、[次を検索] コマンドを実行すると、重ならない文字列のみ一致するように動作するため、最後の A を残して検索を終了します。つまり、強調表示と検索位置が一致します。

3. EmEditor では、URI やメール アドレスが強調表示されますが、これらの部分だけを抽出したいというご質問を頻繁にいただきます。従来のバージョンでそれを行うには、[検索] ダイアログで、適当な正規表現を指定して、[抽出] を選択することで可能でしたが、正規表現に慣れていないお客様が多いことも事実です。本バージョンでは、[頻出文字列を抽出] コマンドで、オプションを指定することにより、URI またはメール アドレスだけを簡単に抽出できるようになりました。

4. EmEditor で CSV を開くと、既定で、自動的に区切り位置を調節して開きます。しかし、非常に長いセルが存在すると、その列の幅が非常に広くなってしまい、CSV 全体が見えにくくなります。本バージョンでは、[カスタマイズ] ダイアログの [CSVオプション] ページに [最大の列幅] テキスト ボックスを追加し、最大の列幅を指定できるようになりました。

5. 前バージョンでは、EmEditor で開いているファイルが、他のアプリにより削除された場合、警告メッセージを表示するようになりました。本バージョンでは、この警告メッセージを表示するかどうかを選択できるようになりました。設定のプロパティの [ファイル] ページに追加された [ファイルが削除された時に警告] チェック ボックスで指定できます。

6. 一部のお客様から、最近のバージョンの Windows 11 で EmEditor の起動時間が遅いという報告がありました。これは主に、スタートアップ時に Windows クリップボード履歴を取得する際に発生します。新バージョンでは、このオプションはデフォルトで無効になっていますが、[カスタマイズ] ダイアログの [クリップボード] ページで有効にすることができます。

7. 新バージョンでは、[ファイルの比較] ウィザード内の [折り返さない切り替える] オプションがデフォルトで無効になります。

さらに、本バージョンでは、[ファイルを分割]、[ファイルを結合]、[インデント]、[逆インデント] コマンドなどを高速化し、v23.1 に比べて 27 から 124 倍に高速化しました

既に、江村誠がブログで発表した通り、本バージョンより、登録検証システムにより、EULA (エンド ユーザー使用許諾契約) で許可されている以上のデバイスで EmEditor Professional を使用されている場合、警告のメッセージが表示されることがあります。今後も低価格なライセンス料を維持し、複数ライセンスを購入されたお客様の間の公平性を確保するためにも、ライセンスの条項にしたがって十分なライセンス数を購入してお使いください。

EmEditor をアンインストールすると、デバイスの登録が解除され、別のデバイスにインストールすることができます。登録されているデバイスはこちらで確認できます。古いデバイスが登録解除されるように、v24.0.0 の公開日に、すべてのデバイスの登録を解除しました。EmEditor を使用すると、デバイスは自動的に登録されます。

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

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

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

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

EmEditor v23.1.3 を公開しました

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

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

  • v23.1.2 で、巨大ファイルの一部が保存されない可能性がある不具合を修正しました。

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

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

登録検証システムについての説明

新しいバージョンで導入された登録検証システムの技術的内容について、江村誠がブログで説明しました。

EmEditor v23.1.2 を公開しました

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

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

  • 様々な不具合を修正し安定性を向上しました。

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

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

EmEditor v23.1.1 を公開しました

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

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

  • 開いたファイルに不正な文字が含まれている場合に、クラッシュする可能性がある不具合を修正しました。
  • 選択範囲が無い状態で eeFindReplaceSelOnly フラグを使用して BatchReplace メソッドを使用すると予期しない動作になることがある不具合を修正しました。

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

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

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

前バージョンの v23.0 では、新機能の Web ブラウザとマクロを使用して、生成 AI の Webサイトにアクセスし、様々な情報やサービスを取得する方法を紹介しました。しかし、生成 AI のサイトの有料の API キーをお持ちのお客様は、API を直接呼ぶことにより、より高速に、より高いサービスを、より安定した動作で取得することができます。そのためには、JavaScript の fetch 関数を使用する方法が使われますが、この関数は非同期に動作するため、マクロが終了前に関数の戻り値が得られないことがありました。実は、v23.0 でも、EmEditor 内蔵の Web ブラウザを表示していれば、この方法も可能だったのですが、Web ブラウザが表示されていない場合は、非同期関数が使えない問題がありました。本バージョンの v23.1 では、KeepRunning プロパティを使用することにより、マクロを終了せずに、非同期関数の終了を待つことができるようになりました (Professional 版のみ)。非同期関数を呼ぶ前に、KeepRunning プロパティは、以下のように指定します。


shell.KeepRunning = true;

すると、マクロが実行されたままになり、非同期関数の戻り値を得ることができます。このままだと、いつまでもマクロが実行されたままになりますので、非同期関数の戻り値を得られて、マクロの実行を終了したい場合には、次のように指定します。


shell.KeepRunning = false;

これは、非同期関数の終了を待っている状態では、Quit() とほぼ同等で、マクロがすぐに終了します。

以下に、fetch 関数を利用して、ChatGPT の開発元である OpenAI が提供している OpenAI API を利用するサンプル マクロを示します。このサンプル マクロを実行するには、{your-API-key} をお客様の API キーに書き換える必要があります。以下のマクロを実行すると、OpenAI API に「お元気ですか?」と質問を送り、その回答をアウトプット バーに表示します。


#language="v8"

const apiKey = "{your-API-key}";

/**
 * Sends prompt to OpenAI and returns the response.
 * Docs: https://platform.openai.com/docs/guides/text-generation/chat-completions-api?lang=curl
 * @param {string} endpoint URL for request
 * @param {string} apiKey API key
 * @param {string} messageContent The prompt
 * @returns {string} The text content of the response
 */
async function callOpenAI(endpoint, apiKey, messageContent) {
    const response = await fetch(
        endpoint,
        {
            method: "POST",
            headers: {
                "Authorization": `Bearer ${apiKey}`,
                "content-type": "application/json",
            },
            body: JSON.stringify({
                "model": "gpt-3.5-turbo",
                "messages": [
                    {
                        "role": "user",
                        "content": messageContent,
                    }
                ],
            }),
        }
    );
    if (!response.ok) {
        alert(await response.text());
        Quit();
    }

    const responseObj = await response.json();
    if (responseObj.choices.length == 0) {
        alert("choices length is 0");
        Quit();
    }

    // Get content of first choice
    return responseObj.choices.pop().message.content;
}

async function main() {
    const endpoint = "https://api.openai.com/v1/chat/completions";
    const sPrompt = "お元気ですか?";
    shell.KeepRunning = true;
    const response = await callOpenAI(endpoint, apiKey, sPrompt);
    OutputBar.writeln( response );
    OutputBar.Visible = true;
    shell.KeepRunning = false;
}
main();

CharOpenAI.jsee マクロ例は、このサンプルをさらに発展させたもので、現在の選択テキストまたは文書全体に対して、よく使う質問の一覧 (「校正」、「要約」、「調べる」、「翻訳」など) をポップアップ メニューとして表示します。質問を選択すると、OpenAI API に質問を送り、その回答をアウトプット バーに表示します。

実は、本ブログも、CharOpenAI.jsee マクロを利用して、翻訳、校正を行いながら、執筆しています。生成 AI をテキストエディターと組み合わせて使用することにより、仕事の効率が上がることを実感できました。

v23.1 のもう 1つの主要な変更点は、巨大ファイルの処理速度の向上です。前バージョンの v23.0 では、変更行を一時ファイルではなくメモリに保存することで高速動作が実現しました。しかし、この方法ではメモリが少ないシステムでは逆に遅くなったり、メモリ不足でエラーが発生する可能性がありました。[カスタマイズ] ダイアログの [高度] ページで、[編集時、一時ファイルを使用する] オプションを設定することで従来と同じ動作に戻すことも可能でしたが、ファイルのサイズによって設定を切り替えるのは煩雑です。v23.1 では、メモリに関連するアルゴリズムを見直し、より効率的な動作を実現しました。さらに、仮想メモリが不足すると一時ファイルを使用してデータを保存するようにしました。これにより、仮想メモリのサイズに気を遣わずとも、メモリ不足によるクラッシュの頻度を大幅に軽減することができました。このメモリ関連の改善の効果と、マルチスレッド、SIMD 命令セットの使用により、CSV を含む巨大ファイルの編集時に多くのコマンドで、v23.0 に比べて 1.51 から 41.2 倍に高速化しました

ヘルプは、EmEditor 内蔵の Web ブラウザではなく、v22.5 以前のように外部のブラウザを使用して表示することを既定の動作としました。さらに、[カスタマイズ] ダイアログ ボックスに [ヘルプ] ページを追加して、ヘルプに関する設定を変更することができるようになりました。

江村誠は、言語サーバー プロトコル (LSP) を使用して入力候補一覧を表示できるようにしました (Professional 版のみ)。この機能を利用するためには、設定のプロパティでの [言語サーバー] ページで、言語サーバー プロトコルが有効になっていて、[入力候補一覧を表示する] オプションが設定されている必要があります。現在のところ、JavaScript のみが入力候補一覧に対応しています。

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

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

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

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

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

EmEditor Logo

EmEditor v23.1 プレビュー版

EmEditor v23.1 プレビュー版を一般のテスト用にリリースしています。EmEditor v23.1 は、CSV を含む巨大ファイルの編集時に多くのコマンドで大幅に高速化すると同時に、メモリ不足によるクラッシュを軽減しました。また プレビュー版には最近のバグ修正も含まれています。プレビュー版を試していただき、何か問題が発生した場合やフィードバックがあればお知らせください。

履歴については、EmEditor v23.1 preview (23.0.901-) をお読みください。

更新方法: インストーラー版をお使いの場合、自動的に最新のプレビュー版に更新するには、[ヘルプ] メニューの [更新チェッカーのカスタマイズ] を選択し、[プレビュー版を含める] を設定してください。また、プレビュー版は、以前のバージョンからもダウンロードしていただけます。

EmEditor v23.0.5 を公開しました

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

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

  • ステータス バーに [カーソル位置の文字コード] が有効の場合、CSVファイルを開くとクラッシュする可能性がある不具合を修正しました。
  • CSV構文チェックが実行中にスクロール バーのミニマップを表示するとクラッシュする可能性がある不具合を修正しました。
  • 複数選択が無効の場合、箱型選択中に [インデント] コマンドを実行するとクラッシュする可能性がある不具合を修正しました。
  • [コミット リスト] プラグインが Unicode パスでクラッシュする可能性がある不具合を修正しました。
  • 様々なヘルプの問題を修正しました (1)。

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

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

EmEditor v23.0.4 を公開しました

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

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

  • 新バージョンは、Webブラウザを非表示にすると完全に閉じるようになりました。
  • SSE4.2 をサポートしていない古い CPU (例えば、2006年にリリースされた Intel Core 2 Duo) で動作させる場合、クラッシュする問題を回避しました。このクラッシュは、Visual Studio v17.8 の不具合によるものです。
  • [マクロ] メニューの [キーワードを検索] コマンド (ヘルプ) の不具合を修正しました。
  • 複数セルを選択し、F2 または Enter を押し、タイプすると、すべてのセルの中身が同じ文字列になる不具合を修正しました。
  • CSV セル編集中に ESC を押してもセルがリセットされないことがある不具合を修正しました。
  • [列を結合] コマンドで特定のオプションを指定して実行するとクラッシュする可能性がある不具合を修正しました。
  • CSV 構文チェック中に [ファイルを分割] コマンドを実行するとクラッシュする可能性がある不具合を修正しました。
  • 言語サーバー プロトコルを使用してツール チップを表示時にクラッシュする可能性がある不具合を修正しました。

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

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