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 位)。

EmEditor v22.5.2 发布!

我们发布了 EmEditor v22.5.2。

v22.5.2 包括以下错误修复和改进。

  • 修复了与工具提示上的转换相关的问题。
  • 修复了与功能栏相关的问题。
  • 修复了各种潜在的崩溃问题。

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

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

感谢您使用 EmEditor!

EmEditor v22.5.1 发布!

我们发布了 EmEditor v22.5.1。

今天,我们发布了 EmEditor v22.5.1。

v22.5.1 包括以下错误修复和改进。

  • 修复了与工具提示上的全部转换相关的问题。
  • 修复了与功能栏相关的问题。
  • 修复了与文件更改的提示通知相关的问题。
  • 修复了各种潜在的崩溃问题。

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

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

感谢您使用 EmEditor!

EmEditor v22.5.0 发布(含技术评论)!

今天,我们发布了 EmEditor v22.5.0

我最近购买了一台配备第 13 代英特尔酷睿 i7-13700 的电脑。 自第 12 代酷睿处理器推出以来,英特尔推出了混合架构,将 P 核与 E 核相结合以提高性能和效率。 这种新架构很有趣,因为 P 核的运行速度比 E 核更快。 EmEditor 的所有先前版本都假定所有线程以相同的速度运行。 如果 P-Core 线程的运行速度比 E-Core 线程快,则 P-Core 线程比 E-Core 线程更早完成任务,并且需要等待 E-Core 线程完成任务。 需要澄清的是,即使没有 E 核和 P 核,线程速度也可能会波动; 例如,如果一个线程被后台应用程序或系统进程中断,则该线程将变得比其他线程慢。 然而,P 核心和 E 核心的存在可能会加剧这种情况。

为了克服这种情况,我优化了代码,以便 v22.5 能够动态管理线程负载平衡。 以下截图显示了在非常大的文件中搜索正则表达式时优化前后的 CPU 使用情况。 优化后任务结束时整体 CPU 使用率突然下降。

在开发 v22.5 时,我们花费了大部分时间来优化代码,以使用各种技术(包括多线程)提高许多命令的速度。 例如,通过多线程,复制命令的速度提高了 1.49 倍。 在重构和优化的同时,我有机会审查代码。 如果 CPU 不支持 AVX-512 指令集,旧版本就不会启用 SHA 指令集。 v22.5 修复了此错误并在许多不支持 AVX-512 的 CPU 上提高了多个命令的速度,例如删除重复行。 我将在未来的版本中继续审查和优化代码以提高速度。

当我第一次在我的新 PC 上用 Visual C++ 构建代码时,我很失望地发现构建速度非常慢。 我们发现,在构建代码时,内存使用率达到了 100%,因为只有 16 GB 的物理内存 (RAM) 可用。 CPU 有 24 个逻辑核心,Visual C++ 使用 24 个线程来构建代码。 在 Visual C++ 选项中将线程数从 24 调整为 7,编译器构建代码的速度变得更快。 同样,与使用 3 个线程相比,使用 24 个线程时 EmEditor 速度更慢。 将物理内存从 16 GB 增加到 80 GB 使两个应用程序在 24 个线程下速度更快。 因此,如果您使用的是具有大量逻辑核心的现代 CPU,我强烈建议您增加物理内存。 例如,如果您的 CPU 有 24 个逻辑核心,我建议您的 PC 至少配备 32 GB 物理内存。 如果没有足够的内存,您可能需要调整线程数,可以在 EmEditor 的“自定义”对话框的“高级”页面上指定线程数。 在 v22.5 中,如果逻辑核心数量超过此 GB 值,EmEditor 会默认将线程数调整为最接近的 GB 物理内存量。

一个用户要求改进文件更改检测功能。 旧版本默认每 5 秒检查一次当前文件大小和时间戳,如果确定文件已更改,则会出现消息框“文件已被另一个程序更改。重新加载更改?”。 v22.5 使用 Windows API 更有效地检测文件更改。

另一位用户要求能够单击行号的左边缘来切换书签。 对于旧版本,您必须选择切换书签命令或按 CTRL + F2 来切换书签。 我知道单击行号会更容易,并且在文本编辑器中有些标准,因此如果行号可见,我添加了此功能。

Makoto Emura 添加了对搜索符号命令使用语言服务器协议的功能以及使用 JSON 语言服务器的功能。 他还改进了 CommitList 插件,为拉取推送按钮添加了提前/滞后提交的标记。

我们将在不久的将来停止支持 Windows 7、8.1 和 Server 2008 R2。 Microsoft 已停止支持这些版本的 Windows。 出于安全原因,强烈建议不要使用这些旧版本的 Windows。 我们还将停止开发 32 位版本的 EmEditor。 我们希望将开发和测试资源集中在 64 位版本的 EmEditor 上。

由于我们希望更多人使用 EmEditor,因此我们将 EmEditor 的价格保持在尽可能低的水平。 自从我们开始提供年订阅授权以来,年订阅的第一年价格为 40 美元(之前为 39.99 美元),变化没有超过 1 美分。 但是,我们不容忍非法使用 EmEditor Professional。 我见过一些网站出售或赠送 EmEditor Professional 的“破解”密钥。 这些都是非法网站,我们不支持从这些网站获取的密钥。 即使用户没有有效的授权,我有时也会收到有关 EmEditor Professional 的技术问题。 我们想把时间和资源集中在已购买有效授权的用户上。 为了继续开发 EmEditor 并保护我们的付费用户,我们将添加代码来检查授权的真实性。 如果授权无效,EmEditor 将停止工作。 此检查可能不会在您启动 EmEditor 时立即发生,也可能不会在每次启动 EmEditor 时发生。 由于此代码的性质和目的,我们不会透露有关其工作原理的详细信息。 但是,添加的代码不会传输任何个人信息,并且不会阻止您在没有 Internet 连接的情况下使用 EmEditor。 保护我们的软件以及已购买有效授权的用户非常重要。 我希望您能理解。 另请参阅如何计算授权数以检查您是否有足够的授权数。

我们将在另外的文章中宣布我们的授权价格更新和永久授权的销售。

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

感谢您使用 EmEditor!
Yutaka Emura

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

此次发布还包括了开发 v22.5 时的所有错误修复

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

EmEditor v22.4.2 发布!

我们发布了 EmEditor v22.4.2。

今天,我们发布了 EmEditor v22.4.2。

v22.4.2 包括以下错误修复和改进。

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

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

感谢您使用 EmEditor!

EmEditor v22.4.1 发布!

我们发布了 EmEditor v22.4.1。

今天,我们发布了 EmEditor v22.4.1。

v22.4.1 包括以下错误修复和改进。

  • 调整了按住 Shift 键时水平滚动鼠标滚轮的变化。
  • 修复了使用 \J 替换表达式在文件中替换的行为。
  • 修复了在文件中替换未在状态栏中显示替换计数的问题。
  • 允许拖放垂直选区以复制或移动。
  • 修复了对非常大的 CSV 文件使用删除列清除内容和其他转换命令时潜在的崩溃问题。
  • 修复了撤消后 CSV 列调整的问题。
  • 修复了在在文件中查找中将直接打开作为输出选项会崩溃的问题。
  • 修复了如果未选择垂直拆分 选项,则比较命令可能会冻结的问题。除非选择了垂直拆分 选项,否则新版本不再逐个字符地高亮显示已更改的行。
  • 修复了启用行标题时 CSV 模式下的显示问题。
  • 在 CSV 单元格选择模式下启用行标题时改进了向左键和 Home 键的移动行为。

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

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

感谢您使用 EmEditor!

EmEditor v22.4.0 发布(含技术评论)!

我们发布了 EmEditor v22.4.0

在这个新版本 (v22.4) 中,我们改进了从慢速驱动器或网络驱动器打开超大文件时的行为和状态消息。在以前的版本中,EmEditor 针对从快速硬盘驱动器或 SSD 打开超大文件进行了优化。它分配了一大块内存来读取文件内容,并且在处理这块内存时没有更新状态栏或大文件控制器上的进度。这让从快速硬盘驱动器或 SSD 读取大文件时效果很好,但如果从慢速或网络驱动器读取文件,它看起来没有响应。v22.4 会在打开文件时计算读取第 1 MB 文件所需的时间。然后 EmEditor 会估计读取速度以及在更新状态栏和大文件控制器上的进度之前应该读取多少字节。这种新算法让 EmEditor 能在慢速驱动器上更频繁地显示打开进度,同时保持较快驱动器的快速读取速度。

v22.4 还提高了在文件中查找的速度,同时也提高了取消在文件中查找时的响应时间。这是通过在一个文件中搜索多个区域来响应取消请求,同时通过使用优化的多线程代码来保持整体速度而实现的。在我们的测试中,与 v22.3 相比,在文件中查找的速度提高了 2.76 倍。v22.4 还提高了其他几个命令的速度,包括删除列 (CSV)、清除内容 (CSV)、随机排序,以及 base 64 编码/解码命令。 在 CSV 单元格选择模式下,选择 CSV 单元格或列时按下 DELETE 键时,将调用清除内容 (CSV) 命令。 这是 CSV 编辑中最常用的操作之一,希望速度的提升能提高您的工作效率。 随机排序 命令的速度通过使用快速伪随机数生成器( Xoshiro-cpp)得到了进一步的提高。

当您在查找对话框中键入搜索词时,用户要求能够更新匹配字符串的高亮显示。我从其他编辑器里得知这个功能,我决定将这个功能添加到 v22.4 中。在默认设定下,该功能是关闭的,但可以通过在查找对话框中单击查找文本框旁边的 > 按钮所显示的菜单上,选择自动高亮来启用。开启此选项后,只有在使用查找/替换/在文件中查找/在文件中替换对话框或查找工具栏时,才会开启在文件中高亮显示匹配字串。此功能在 EmEditor Professional 和 EmEditor Free 上都可用。

当您选择多行文本并将鼠标(在按下鼠标左键的同时移动鼠标)拖过编辑器窗口的底部边缘时,一些用户要求改进垂直滚动。 一些用户喜欢向下滚动,而另一些用户喜欢跳到文档底部。有的用户喜欢选中文件中间的很多行,比如300万行的文件,从第100万行跳到第200万行。为了满足所有用户的需求,v22.4 引入了一种新的滚动模式,让您可以同时拖动鼠标以及新的鼠标指针,如下所述。

首先,当您将鼠标拖过编辑器窗口的边缘时,v22.4 会更改鼠标指针的形状。鼠标指针越过窗口边缘越远,滚动速度越快。 如果您将鼠标指针移离窗口太远,则滚动行为就像您拖动滚动滑块(缩略图)一样。 此模式让您能轻松地将选区的末端移动到文档中的任何位置。默认情况下,当您进入该模式时会显示迷你地图。在按住鼠标左键的同时按下 ESC 键将切换回正常选取模式。此功能在 EmEditor Professional 和 EmEditor Free 上都可用。

Makoto Emura 使用语言服务器协议 (LSP) 添加了语法检查功能。新功能在 JavaScript 和其他语言中可用,这样,您就可以轻松地检查用 JavaScript 编写的宏的语法。此功能仅在 EmEditor Professional 上可用。

他还通过添加签出提交以及创建新分支功能改进了提交列表 (CommitList) 插件。 此功能仅在 EmEditor Professional 上可用。

Makoto 还创建了一个新的测试脚本来测试一些带有随机文档和参数的 EmEditor 功能,例如拆分列命令,他已经发现了一些错误。我们希望以这种方式找到更多的 bug 来完善 EmEditor。

我们把“测试 (beta)”的版本称为“预览”版本,因为“beta”听起来不怎么稳定,但由于我们在不断地修复 bug,它们其实比官方版本更稳定。我们也希望更多用户能尝试新版本中的新功能,所以我们认为新版本应该称为“预览版”,而不是“测试版 (beta)”。 如果可能,我希望您能将 EmEditor 更新到最新版本,包括“预览”版本。

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

感谢您使用 EmEditor!
Yutaka Emura

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

此发布还包括了所有在在开发 v22.4 时修复的 bug

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