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

我们发布了 EmEditor v22.1.0

EmEditor Professional v22.1 的一个主要功能是能使用 V8 JavaScript 引擎。许多用户请求了这个功能(包括 1)。之前版本的 EmEditor 使用的是 JScript,它是基于 IE 浏览器Active Scripting 技术实现的。虽然这具有支持许多其他 Active Scripting 语言的优势,例如 VBScriptPerlScriptPHPScriptPythonRubyScript,但它不支持最新版本的 JavaScript。 EmEditor Professional v22.1 现在支持现代 JavaScript,同时仍支持旧的 JScript 和其他 Active Scripting 语言

默认情况下,您的 JavaScript 宏仍将使用旧的 JScript 引擎运行。要为您的 JavaScript 宏使用 V8 引擎,您可以在宏的顶部添加以下行:

#language="v8"

如果您想默认为所有 JavaScript 宏使用 V8,您可以在菜单上选择自定义,并在选项页面选择使用 V8 作为 JavaScript 引擎选项。如果您需要运行 JScript 的宏,同时选择 V8 作为默认设置,您可以在 JScript 宏的顶部添加以下行:

#language="JScript"

更多信息,请参考 “常见问题解答:如何使用 V8 引擎?”

对现代 JavaScript 的支持使得使用许多第三方库成为可能。例如,Luxon 库可让您轻松处理日期和时间,像这样:

#language="v8"
#include "luxon.min.js"
alert( luxon.DateTime.now().setZone('America/New_York').minus({weeks:1}).endOf('day').toISO() );

使用 Currency.js 库,您可以使用货币进行算术运算而不用担心常见问的小数点错误。例如,

#language="v8"
#include "currency.min.js"
var d = currency( 0 );
for( i = 0; i != 10000; ++i ) { 
    d = d.add( 0.01 );   // 10000 times $0.01
}
alert( "$" + d );  // result is $100.00 as expected. It might not be an expected result if currency.js is not used.

目前,EmEditor 宏不支持 JavaScript 模块,因此您不能使用 Node.jsimport 关键字来导入库。要使用第三方库,您必须下载一个库(通常带有 .min.js 扩展名),并使用 #include 包含它。有关使用第三方库的更多信息,请参阅 “常见问题解答:如何将库导入宏?”

如果您决定将现有宏作为 V8 运行,请确保所有关键字都区分大小写。例如,如果您的宏包括:

redraw = false

您需要将其重写为:

Redraw = false

V8不像 JScript 那样支持用 ActiveXObject 对象创建对象。不过,对于常用的方法,您可以使用包含在 EmEditor 宏中的 Shell 对象中新增的方法。例如,如果您的宏包括:

fso = new ActiveXObject( "Scripting.FileSystemObject" );
if( fso.FileExists( filename ) ) {
    fso.DeleteFile( filename );
}

您需要将其重写为:

if( shell.FileExists( filename ) ) {
    shell.DeleteFile( filename );
}

宏始终在 V8 上异步运行,并且在某些情况下可能比 JScript 慢。 目前,使用 V8 作为 JavaScript 引擎选项默认处于关闭状态。这是因为它与旧的 JScript 宏存在一些不兼容问题。然而,支持现代 JavaScript 是不可避免的趋势,V8 可能会成为未来版本的默认设置。

V8 JavaScript 引擎 的支持是通过使用 Microsoft Edge WebView2 控件。WebView2 控件包含在最新版本的 Windows 10/11 中。如果 V8 宏未在您的计算机上运行,请将您的操作系统更新到最新版本的 Windows 10/11,安装最新版本的 Microsoft Edge >,或下载并安装 WebView2 运行时(Evergreen Bootstrapper 或 Standalone Installer)

网页预览 插件也支持使用 WebView2 控件来用 Microsoft Edge 浏览器显示 HTML 文件。与宏不同的是,这个选项默认是开启的,您可以在网页预览插件属性中选择浏览器引擎。

EmEditor Professional v22.1 包括几个新命令。其中一个是排序/删除选区内重复的拆分字符串。假设您有一个单词列表:

orange, banana, apple, banana, pineapple, apple

您可以选择这些词并在排序菜单中选择排序/删除选区内重复的拆分字符串命令。这将打开选区排序对话框,您可以在其中选择删除重复的拆分字符串选项,再勾选从 A 到 Z 排序。结果会变成:

apple, banana, orange, pineapple

在许多情况下,此命令会自动检测分隔符,在本例中为 “, “(一个逗号和一个空格)。

另一个新命令可以用来处理 CSV 列。使用列排序命令,您可以在指定行(通常是第一行或标题)对 CSV 列进行排序。以前,您只能对行进行排序。现在,您可以选择删除重复的列(在指定行)或删除包含空单元格的列(在指定行)。

最后一个新命令管理列命令取代了之前的移动/复制列命令。当您在CSV 的列标题的右键单击菜单中选择管理列命令时,会显示管理列对话框。您可以从列标题的列表中选择一列或多列,然后拖放以移动或重新排列所选列。您还可以右键单击列表并选择复制粘贴来创建选取的列的副本。此外,您还可以点击删除按钮来删除所选列或点击排序按钮对所有列进行排序。

您可以将这些新命令的操作记录到宏中。排序/删除选区内重复的拆分字符串命令将被记录为 Selection 对象的 Sort 方法。例如,如果选区包含以逗号分隔的单词,则以下代码会将所选单词从 A 到 Z 排序。

document.selection.Sort( ",", "A+" );

管理列命令将被记录为 Document 对象的 RearrangeColumns 方法。例如,当前的 CSV 文档包含 3 列,下面的代码会将第一列移动到文档的右端。

document.RearrangeColumns("2,3,1");

最后,在 EmEditor Professional 中的由 Makoto Emura 开发的 CommitList (Git) 插件 ,也有新的更新,例如添加了创建提交、更改分支、暂存更改和撤消更改的功能。

EmEditor Professional 和 Free v22.1 包括许多来自用户反馈的新功能。例如,新版本在数字范围中支持没有分隔符的日期格式(例如,“yyyyMMdd”)。例如,您可以使用数字范围表达式:

File[20221205 , 20221207 "yyyyMMdd" ].txt

来查找、筛选或提取以下行:

File20221205.txt
File20221206.txt
File20221207.txt

Makoto 重新设计了崩溃报告对话框并添加了从 EmEditor Professional/Free 提交崩溃报告的功能。这减轻了您查找崩溃报告文件并通过电子邮件发送它的负担。我们对新功能感到非常乐观,因为我们在开发测试版时已经收到许多反馈,这使我们能够在发布此正式版本之前修复错误。我们感谢那些向我们发送崩溃报告的用户。

当我们设计用崩溃报告提交的功能时,我们确保用户不会向我们发送任何个人信息。此外,您可以决定是否要提交崩溃报告。如果您没有点击或选择崩溃报告对话框中的提交 按钮,您的任何数据都不会提交。

最后,EmEditor Professional 和 Free v22.1 使用由 SIMD 指令集编写的多线程代码,它大大提高了计算选区内的字符数的速度。所选字符数会显示在状态栏中,Unicode 代理项会被计为一个字符。

Makoto 提出了另一个想法,即将我们的桌面安装程序和便携式文件从 emeditor.com 移动到 emeditor.info。新域 (emeditor.info) 利用内容分发网络 (CDN) 使我们能够快速托管和分发文件。此域更改可能会触发某些安全软件的警报,但您可以安全地忽略和禁用由于域更改而引起的警报。

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

感谢您使用 EmEditor!
Yutaka Emura

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

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

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