EmEditor v21.6.0 发布(含技术评论)!

今天,我们发布了 EmEditor v21.6.0

以前版本的 EmEditor 允许您可视化指定的字符,但您必须通过字符代码值来指定字符范围如果您选择了指定范围选项。当您感兴趣的字符代码值分散在 Unicode 图表中时,这可能会成为一项乏味的任务。新版本允许您通过 Unicode 脚本Unicode 一般类别来指定字符范围。例如,如果您只写拉丁文,最好选择 拉丁文 (Latn) 和 常用 (Zyyy ) 脚本,并设置警告不在指定范围的字符选项。您可以将 Unicode 脚本Unicode 一般类别结合使用。例如,您可以设置

"Latn,Zyyy,Ll,Lu"

来表示拉丁文 (Latn) 或 常用 (Zyyy) 脚本和小写字母 (Ll) 或大写字母 (Lu )。

为使此功能成为可能,我们更新了 EECommon.dll 库中包含的 Unicode 数据库,让您能通过 Unicode 脚本 和/或 Unicode 一般类别来指定字符范围。当您选择字符代码值命令时,新信息也将包含在显示的对话框中。EECommon.dll 库在请求信息之前不会加载到内存中,因此 EmEditor 加载时间不会受到此功能的影响。EECommon.dll 库最初由 Makoto Emura 开发。

EmEditor v21.1 支持所有在 Emoji 序列Emoji ZWJ 序列中的表情符号序列,但是,如果将来引入新的表情符号序列,它们并不全面,也没有延展性。新版本的 EmEditor 使用 Unicode Technical Standard #51 – Unicode Emoji 中指定的定义来支持所有可能的表情符号。这意味着这些表情符号字符只要被字体支持就可以正确显示,并且表情符号周围的光标移动也是正确的。在进行这些更改时,我们将 Unicode 数据库更新到了最新版本 (Unicode v14.0.0)。
一位用户询问是否可以可以将文本文件中的各种日期格式转换为一种日期格式。EmEditor v21.3 支持数字范围中的日期/时间格式。虽然此功能对于查找和筛选特定的日期/时间范围很有用,但如果您需要将它们转换为一种特定的日期/时间格式,它就没有用了。新版本把 \D\T 表达式引入到替换表达式语法中。例如,如果您有一个包含各种格式的日期的文本文件:

3/23/2022
03/23/2022
March 23,2022
Mar 23,2022
23-Mar-2022
2022-03-23
2022年3月23日

如果您想将以上日期转换为一种格式“2022-03-22”,您可以按 CTRL+H 调出替换对话框,选择数字范围选项,然后输入:

查找:

[1/1/1900 , 1/1/2200 "M/d/yyyy|MM/dd/yyyy|MMMM d,yyyy|MMM d,yyyy|dd-MMM-yyyy|yyyy-MM-dd|yyyy年M月d日" ]

替换为:

\Dyyyy-MM-dd

查找表达式将在 1/1/19001/1/2200 之间搜索这些格式,并将匹配的日期转换为 yyyy-MM-dd 格式。

在处理替换表达式语法时,我还添加了新的 \Nc\Nd\NC\ND 表达式来规范化字符串,用 EmEditor v19.8中介绍的 Unicode 规范化。 当您需要规范化匹配特定搜索条件的字符时,这些新表达式很有用。

EmEditor Professional 和 EmEditor Free 支持上述所有功能。

EmEditor Professional v21.6 的主要特点是通过许多简单的非正则表达式搜索字符串显著提高了高级筛选多项查找的速度。一位用户询问是否是否可以在文件中搜索 2500 万个电话号码。这在 EmEditor 的早期版本中并不容易,因为当指定超过数千个搜索字符串时它变得非常慢。我针对这种情况提出了一种新算法,并对代码进行了优化。现在 EmEditor 可以同时接受 2500 万个搜索字符串。在我进行此优化的同时,我还使高级筛选批处理查找/替换对话框能够接受链接文件。链接文件可以包含多个由换行符分隔的搜索字符串。您可以将链接文件从资源管理器拖放到 高级筛选批量查找/替换对话框的列表框中。您也可以将链接文件拖放到筛选工具栏上的筛选框以立即启动高级筛选。链接文件可以更轻松地维护一组搜索字符串并将更改立即应用到高级筛选多项查找中。由于 EmEditor 在进行搜索之前会在内部对搜索字符串进行排序(按长度和字母顺序),因此您可以通过对链接文件进行预先排序来提高速度。如果您决定对链接文件进行预先排序,请在自定义对话框中的排序页面上选择快速二进制比较稳定排序选项。如果您不匹配高级筛选上的大小写,则应选择忽略大小写选项。打开一个链接文件,先选择按字母升序排序,然后选择按文本长度从短到长排序。对链接文件进行预先排序不会改变搜索结果,但会提高搜索或筛选的速度。

此外,筛选工具栏上的提取全部按钮现在是一个下拉按钮,单击该按钮将显示一个菜单,您可以在其中选择提取所有行提取匹配字符串命令。如果多个字符串匹配,提取匹配字符串命令将每行仅提取一个字符串。

我还用与高级筛选命令类似的算法优化了合并 CSV 命令的速度,特别是当 … 包含 …… 以 … 开始… 以 … 结尾条件被选中时。

一位用户请求了一个新选项,即自定义对话框中的状态页面上的选择模式项。如果勾选了此选项,则状态栏会在垂直选择模式处于活动状态时显示“垂直”,在行选择模式处于活动状态时显示“”。

一位用户在启动 EmEditor 时报告了崩溃,并给我发送了一个崩溃报告文件。我查看了崩溃报告,发现由于一个非常大的文件历史记录而使 EmEditor 因内存不足的情况崩溃。该用户将保存光标位置选项设置为 30000 天,并在 自定义对话框中的历史记录页面上选择了永不清除书签选项。这会导致创建一个非常大的文件历史记录。为了防止此类问题的发生,新版本去掉了永不清除书签复选框,并将光标和书签的保存时间限制为100天。

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

感谢您使用 EmEditor!
Yutaka Emura

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

此版本还包括以下错误/问题修复:

  • 修复了查找下一个/上一个警告字符/Unicode 命令可能会丢失代理用户定义字符的错误。
  • 修复了如果批处理数组为空,EmEditor 可能在 BatchReplace 方法处崩溃的错误。
  • 修复了与布局相关的问题。
  • 修复了查找对话框中的 查找下一个/上一个按钮不适用于代理字符的问题。
  • 修复了字符间距可能变得不规则的错误。
  • 修复了在垂直拆分窗口和切换文档时垂直滚动位置可能位于底部的错误。
  • 修复了打开某些 CSV 文件时出现语法错误但单击检查语法按钮会清除所有错误的问题。
  • 修复了 v21.5 中的错误,其中 EmEditor 可能会在打开网络文件时显示“文件已被另一个程序更改。是否重新加载更改?”消息框。
  • 修复了用户报告的问题 (1)。

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