EmEditor v23.1.3 发布!

我们发布了 EmEditor v23.1.3。

v23.1.3 包括以下错误修复和改进。

  • 修复了一个潜在问题,可能无法保存非常大文件的一部分。

详细信息和屏幕截图,请参阅 EmEditor v23.1 新增功能。

如果您使用的是桌面安装程序版,那您可以到帮助菜单下选择检查更新来下载最新版本。 如果此方法失败,请下载最新版本,并运行下载的安装程序。 如果您使用的是桌面便携版,则可以转到下载页面下载最新版本。商店应用版可以在几天后通过 Microsoft 商店更新( 64 位 / 32 位)。

EmEditor v23.1.2 发布!

今天,我们发布了 EmEditor v23.1.2。

v23.1.2 包括以下错误修复和改进。

  • 修复了各种问题并提高了稳定性。

详细信息和屏幕截图,请参阅 EmEditor v23.1 新增功能。

如果您使用的是桌面安装程序版,那您可以到帮助菜单下选择检查更新来下载最新版本。 如果此方法失败,请下载最新版本,并运行下载的安装程序。 如果您使用的是桌面便携版,则可以转到下载页面下载最新版本。商店应用版可以在几天后通过 Microsoft 商店更新( 64 位 / 32 位)。

EmEditor v23.1.1 发布!

我们发布了 EmEditor v23.1.1。

v23.1.1 包括以下错误修复和改进。

  • 修复了打开的文件包含无效字符时可能发生崩溃的问题。
  • 修复了在不存在选区的情况下使用带有 eeFindReplaceSelOnly 标志的 BatchReplace 方法时出现的意外行为。

此版本还包括开发 v23.1 时的所有错误修复

详细信息和屏幕截图,请参阅 EmEditor v23.1 新增功能。

如果您使用的是桌面安装程序版,那您可以到帮助菜单下选择检查更新来下载最新版本。 如果此方法失败,请下载最新版本,并运行下载的安装程序。 如果您使用的是桌面便携版,则可以转到下载页面下载最新版本。商店应用版可以在几天后通过 Microsoft 商店更新( 64 位 / 32 位)。

EmEditor v23.1.0 发布(含技术评论)!

我们发布了 EmEditor v23.1.0

在之前的 v23.0 版本中,我们介绍了如何使用新的网页浏览器和宏来访问生成式 AI 的网页并获取各种信息和服务。然而,那些有生成式 AI 站点的付费 API 密钥的用户可以通过直接调用 API 来获得更快、更高质量、运行更稳定的服务。为此,我们使用了 JavaScript 中的 fetch 函数,但由于该函数是异步操作的,因此在宏结束之前可能无法获取到函数的返回值。实际上,即使在 v23.0 中,如果显示了 EmEditor 内置的网页浏览器,也可以使用此方法,但存在如果不显示网页浏览器则无法使用异步函数(async)的问题。在新版本 v23.1 中,通过使用 KeepRunning 属性,现在可以等待异步函数完成而不结束宏(仅限 EmEditor Professional)。 在调用异步函数之前,请指定 KeepRunning 属性,如下所示。


shell.KeepRunning = true;

这使宏保持运行,让您能获取异步函数的返回值。要在获得异步函数的返回值后结束宏,可以指定如下:


shell.KeepRunning = false;

这相当于等待异步函数完成时的 Quit(),会立即结束宏。下面是一个宏的示例,其中使用 fetch 函数来利用 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 = "How are you?";
shell.KeepRunning = true;
const response = await callOpenAI(endpoint, apiKey, sPrompt);
OutputBar.writeln( response );
OutputBar.Visible = true;
shell.KeepRunning = false;
}
main();

CharOpenAI.jsee 宏示例进一步扩展了如何运用 OpenAI API。 这个宏能通过显示一个弹出菜单,让用户对所选文本或整个文档提出一系列的常用问题(例如,“校对”、“总结”、“查找”、“翻译”…)。选择要提问的问题后,EmEditor 会将问题发送到 OpenAI API 并在输出栏中显示答案。

实际上,我在撰写此文章时使用了 CharOpenAI.jsee 宏进行翻译和校对。通过将生成式人工智能与文本编辑器相结合,我已经能够显着提高我的工作效率。

v23.1 的另一个主要变化是在处理大文件时的速度提高。在 v23.0 中,行的更改是存储在内存中,而不是临时文件中,以便更快地运行。但是,在内存有限的系统中,这可能会由于系统内存不足而导致速度缓慢甚至崩溃。在 v23.1 中,对内存相关算法进行了修改,以更高效地运行。此外,当虚拟内存不足时,EmEditor 可以使用临时文件来存储数据。用户不再需要担心虚拟内存的大小,并且因内存不足而导致崩溃的频率也显著降低。另外,我们改进了与内存相关的代码,并且使用了多线程SIMD 指令集。这使得在编辑大文件(包括 CSV 文件)时,v23.1 的速度比 v23.0 提高了 1.51 至 41.2 倍

帮助功能现在默认使用外部浏览器,而不是 EmEditor 的内置网页浏览器,类似于 v22.5 及更早版本。此外,在自定义对话框中添加了帮助页面,让您能更改与帮助相关的设置。

最后,Makoto Emura 添加了完成列表功能。要使用此功能,必须在配置属性的语言服务器页面中启用语言服务器协议,并且还必须启用显示完成列表选项(仅限 EmEditor Professional)。目前,只有 JavaScript 支持此功能。

希望您喜欢 EmEditor,无论您使用的是 Professional 还是 Free。如果您有任何问题、功能请求或想法,请联系我们到论坛中留言

感谢您使用 EmEditor!br> — Yutaka Emura

详细信息和截图,请参阅 EmEditor v23.1 新增特性

此发布还包括了 在开发 v23.1 时的 bug 修复

如果您使用的是桌面安装程序版,那您可以到帮助菜单下选择检查更新来下载最新版本。 如果此方法失败,请下载最新版本,并运行下载的安装程序。 如果您使用的是桌面便携版,则可以转到下载页面下载最新版本。商店应用版可以在几天后通过 Microsoft 商店更新( 64 位 / 32 位)。

EmEditor v23.0.5 发布!

我们发布了 EmEditor v23.0.5。

今天,我们发布了 EmEditor v23.0.5。

v23.0.5 包括以下错误修复和改进。

  • 修复了在状态栏上显示“光标处的字符代码”时打开 CSV 文件可能发生的崩溃的问题。
  • 修复了在运行 CSV 验证时在滚动条上显示小地图时可能发生崩溃的问题。
  • 修复了在垂直选择模式下禁用多选区编辑时缩进命令可能发生崩溃的问题。
  • 修复了 CommitList 插件上使用 Unicode 路径可能发生崩溃的问题。
  • 修复了帮助上的各种问题 (1)。

详细信息和屏幕截图,请参阅 EmEditor v23.0 新增功能。

如果您使用的是桌面安装程序版,那您可以到帮助菜单下选择检查更新来下载最新版本。 如果此方法失败,请下载最新版本,并运行下载的安装程序。 如果您使用的是桌面便携版,则可以转到下载页面下载最新版本。商店应用版可以在几天后通过 Microsoft 商店更新(64 位 / 32 位)。

感谢您使用 EmEditor!

EmEditor v23.0.4 发布!

我们发布了 EmEditor v23.0.4。

今天,我们发布了 EmEditor v23.0.4。

v23.0.4 包括以下错误修复和改进。

  • 新版本在隐藏网页浏览器时完全关闭它。
  • 解决了在不支持 SSE4.2 的旧 CPU 上运行时发生崩溃的问题(例如 2006 年发布的 Intel Core 2 Duo)。该崩溃是由于 Visual Studio v17.8 中的错误造成的。
  • 修复了菜单中的查找关键字(帮助)命令。
  • 修复了选择多个单元格、按 F2 或 Enter 键并键入会将单元格内容更改为同一字符串的问题。
  • 修复了在 CSV 单元格编辑模式下按 ESC 并不总是重置单元格的问题。
  • 修复了使用某些选项时“合并列”命令可能发生崩溃的问题。
  • 修复了在 CSV 语法检查期间运行“拆分文件”命令时可能出现的崩溃问题。
  • 修复了使用语言服务器协议显示悬停工具提示时可能发生的崩溃。

详细信息和屏幕截图,请参阅 EmEditor v23.0 新增功能。

如果您使用的是桌面安装程序版,那您可以到帮助菜单下选择检查更新来下载最新版本。 如果此方法失败,请下载最新版本,并运行下载的安装程序。 如果您使用的是桌面便携版,则可以转到下载页面下载最新版本。商店应用版可以在几天后通过 Microsoft 商店更新( 64 位 / 32 位)。

感谢您使用 EmEditor!

EmEditor v23.0.3 发布!

我们发布了 EmEditor v23.0.3。

今天,我们发布了 EmEditor v23.0.3。

v23.0.3 包括以下错误修复和改进。

  • 修复了以下问题:如果从配置属性的“文件”页面的“被其他程序更改时”下拉列表中选择“保持锁定”,EmEditor 可能无法保存工作区、换行或显示大纲。
  • 修复了各种崩溃问题。

详细信息和屏幕截图,请参阅 EmEditor v23.0 新增功能。

如果您使用的是桌面安装程序版,那您可以到帮助菜单下选择检查更新来下载最新版本。 如果此方法失败,请下载最新版本,并运行下载的安装程序。 如果您使用的是桌面便携版,则可以转到下载页面下载最新版本。商店应用版可以在几天后通过 Microsoft 商店更新( 64 位 / 32 位)。

感谢您使用 EmEditor!

EmEditor v23.0.2 发布!

我们发布了 EmEditor v23.0.2。

今天,我们发布了 EmEditor v23.0.2。

v23.0.2 包括以下错误修复和改进。

  • 修复了宏可能无法在默认设置下运行的错误。 即使存在多个群组窗口,新版本也限制一个网页浏览器。

详细信息和屏幕截图,请参阅 EmEditor v23.0 新增功能。

如果您使用的是桌面安装程序版,那您可以到帮助菜单下选择检查更新来下载最新版本。 如果此方法失败,请下载最新版本,并运行下载的安装程序。 如果您使用的是桌面便携版,则可以转到下载页面下载最新版本。商店应用版可以在几天后通过 Microsoft 商店更新( 64 位 / 32 位)。

感谢您使用 EmEditor!

EmEditor v23.0.1 发布!

我们发布了 EmEditor v23.0.1。

v23.0.1 包括下列 bug 修复:

  • 修复了以特定文件编码(例如阿拉伯语或 US-ASCII)打开文件时 EmEditor 可能崩溃的错误。
  • 修复了在多个群组窗口中显示网浏览器栏时 EmEditor 可能崩溃的错误。

详细信息和屏幕截图,请参阅 EmEditor v23.0 新增特性

如果您使用的是桌面安装程序版,那您可以到帮助菜单下选择检查更新来下载最新版本。 如果此方法失败,请下载最新版本,并运行下载的安装程序。 如果您使用的是桌面便携版,则可以转到下载页面下载最新版本。商店应用版可以在几天后通过 Microsoft 商店更新( 64 位 / 32 位)。

EmEditor v23.0.0 发布(含技术评论)!

我们发布了 EmEditor v22.3.0

虽然按照惯例,该版本应命名为 v22.6,但由于进行了大量更改,并且是一次真正的重大更新,同时也是今年最后一次的重大更新,我们决定与 2023 年的最后两位数字保持一致,并将其命名为 v23.0。

生成式 AI 的最新进展(包括 ChatGPT)使人们能够通过网络浏览器使用各种信息和服务。 EmEditor 用户越来越需要直接在 EmEditor 内使用这些 Web 服务,从而无需使用外部浏览器。在新版本中,我们添加了在 EmEditor 的自定义栏中显示网页浏览器的功能。该浏览器设计为与宏结合使用,让用户能将编辑器中的文档的一部分发送到网页浏览器所显示的站点中,反之亦然。要利用这些功能,请确保在自定义宏对话框的选项页面中勾选使用 V8 作为 JavaScript 引擎复选框,或在每个宏的开头行添加以下内容:


#language = "V8"

添加了两个具体功能:

(1) web. 关键字:要访问 HTML 的文档对象模型 (DOM),请使用小写的 web. 关键字。这种区别对于区分 EmEditor 中的对象和网页浏览器中的对象是必要的。 例如,在宏中:


document.write( "Test" );

目前尚不清楚 “Test” 是否应显示在 EmEditor 的编辑器视图中或网页浏览器的 HTML 中。要在 Web 浏览器中显示 “Test” ,请添加 web. 前缀:


// Displays "Test" in Web Browser
web.document.write( "Test" );

使用此语法,以 web. 开头的关键字将被解释为在网页浏览器中执行的指令,从而允许访问 DOM。 示例包括:


// Returns the URL of the current web page.
alert( web.location.href );

// Returns the preferred language of the browser.
alert( web.navigator.language );

// Pastes the text of the current web page into a new document.
editor.NewFile();
write( web.document.documentElement.innerText );

// Pastes the HTML of the current web page into a new document.
editor.NewFile();
write( web.document.documentElement.outerHTML );

(2) onLoad 事件:如果最后执行的宏包含以 onLoad() 开头的函数,则仅在网页更新或加载新页面时调用一次。此功能允许执行诸如在搜索网站上检索搜索结果之类的任务。 例如:


function onLoad() {
    // Retrieves the HTML of the page and pastes it into a new document.
    editor.NewFile();
    document.write( web.document.documentElement.outerHTML );  
}

Bing.jsee 宏示例 演示如何从 HTML 搜索结果中检索和显示特定信息。请注意,某些搜索网站(例如 ChatGPT 的免费版本)可能不会触发页面更新或新页面加载。在这种情况下,不会发生 onLoad() 事件,从而阻止使用此事件检索搜索结果。尽管如此,Makoto Emura 提出了一个想法,使用 MutationObserver 接口并在发生变化时检索文本。ChatGPT.jsee 宏示例演示了如何使用此接口从 ChatGPT 检索响应。如果按原样运行此宏,则所选文本只会输入到 ChatGPT 提示框中。但是,如果取消第 99 至 100 行的注释,该宏会发送文本。免责声明:Bing 和 ChatGPT 响应的格式将来可能随时更改,从而可能影响这些宏的功能。这些宏仅用于演示 EmEditor v23.0 的新功能。我们不保证这些宏将来会持续起作用。

v23.0 的另一个重大变化是对于处理大文件的优化。EmEditor 用户经常处理非常大的 CSV 文件,有时甚至达到好几千兆字节。为了确保处理此类大文件时性能的流畅性,我们对删除、插入、合并、排序和粘贴列等操作进行了广泛的测试。这些命令通过多线程和其他优化技术进行了优化,让EmEditor v23.0 与 v22.5 相比,速度提高约 21 到 34 倍

CSV 转换器中,之前的版本缺乏多线程代码,导致处理大文件时性能缓慢。新版本通过使用多线程和 SIMD 代码改进了这一点,即使是数千兆字节的 CSV 文件,格式转换也可以在几秒钟内完成。

对于日语 (JIS) 和日语 (EUC),v23.0 放弃使用传统的 Windows API 对象 MultiLanguage,转而使用自定义查找表。这一变化增强了对无效字符的检测逻辑,并显著提高了文件打开和搜索等操作的速度。

在 v22.5 中,单击行号的左边缘可切换书签。根据用户反馈,在自定义对话框的鼠标页面中添加了禁用此功能的选项。

Markdown 配置已得到改进,通过添加到特殊语法,可以更准确地体现强调格式,例如粗体和斜体。

使用语言服务器协议,Makoto Emura 添加了一项功能来格式化所选字符串或整个文档。此命令可通过转换菜单的格式化访问(快捷键:Ctrl+K、F),消除了不一致的情况;例如,前导制表符或空格的数量以及括号 () 或 {} 周围空格的位置和存在,以提高可读性。用户可以选择要格式化的代码,如果未进行选择,则会出现一个对话框提示是否格式化整个文档。或者您可以按快捷键 Ctrl+K、D 来格式化整个文档。要启用格式化命令,必须在自定义对话框的语言服务器页面上启用语言服务器协议选项,并且必须从文档类型下拉列表中选择所需格式化的语言。请注意,格式化的偏好(例如括号周围是否存在空格)取决于语言服务器,无法在 EmEditor 中自定义。

从该版本开始,语言服务器协议正式支持 C++CSSHTMLJavaScript用于 EmEditor 的 JavaScriptPerlPython 配置。用户可以随时在自定义对话框的语言服务器页面的设置中禁用此功能。

Makoto 通过添加一个更新子模块选项来将更改拉到子模块中,从而增强了 CommitList (Git) 插件。 他还从 CommitList 侧栏中的暂存文件列表(不是未暂存的文件)中删除了撤消更改菜单项,以避免对预期行为产生混淆。

最后,由于传统的帮助系统使用了过时的设计并且难以维护,从这个版本开始,我们用 Sphinx 对帮助进行了重新设计。新的帮助系统是在我们的 GitHub 页面上维护和构建的。

我希望您喜欢 EmEditor,无论您使用的是专业版还是免费版。如果您有任何问题、功能请求或想法,请联系我们在论坛中留言

感谢您使用 EmEditor!
Yutaka Emura

详细信息和屏幕截图,请参阅 EmEditor v23.0 新增特性

此发布还包括了开发 v23.0 时的所有错误修复.

如果您使用的是桌面安装程序版,那您可以到帮助菜单下选择检查更新来下载最新版本。 如果此方法失败,请下载最新版本,并运行下载的安装程序。 如果您使用的是桌面便携版,则可以转到下载页面下载最新版本。商店应用版可以在几天后通过 Microsoft 商店更新( 64 位 / 32 位)。如果您使用 winget,您可以输入 “winget install emeditor” 来安装最新版本的 EmEditor(自动检测 64 位或 32 位)。