几款文本编辑器横向比较

几款文本编辑器横向比较

关键字: 大文件、编辑器

编辑器功能及性能比较

免责声明

  • 以下列选编辑器,仅限于本人日常接触的产品,带有强烈的个人主观和随机性,未列选产品并不代表不能满足功能需求。
  • 测试数据(特别是时间),受限于观察条件,不可避免的存在误差,仅用于感性判断,请勿用于选型、商务等用途,由此造成的损失本人不负任何责任。
  • 观察粒度难保严谨,很多功能项并不是支持与不支持可以简单概括,同样都支持在使用中也会存在较大差异,请勿用此简单衡量编辑器能力。
  • 每个编辑软件都有自己的特点和受众,在特定场合都能发挥价值,不得将本测试数据用于攻击、诋毁相关软件,由此造成的后果本人不负任何责任。
  • 由于个人水平有限,测试数据和方法难免存在错误,并不是本人有意构陷,欢迎批评指正以及反馈合理建议。
  • 本测试的用意是知己知彼,发现短板改进短板,促进国产编辑软件走向一流。

概述

下表整理几款编辑器的功能情况:

编辑器: EverEdit EmEditor UltraEdit CudaText RJTextEd Notepad-- Notepad3 Vim
版本 v4.5.0(4500) Version 24.3.2 2024.1.0.3264-bit 1.217.5.1 16.300 (64-bit) v2.18.0(20240730) (x64)6.23.203.2 9.1
支持OS
Windows Windows Windows Windows
Linux
macOS
FreeBSD
Solaris
...
Windows Windows
MacOS
Linux/UOS
Windows Windows
Linux
MacOS
Unix
官网 cn.everedit.net emeditor.com ultraedit.com cudatext.github.io
rj-texted.se itdp.cn rizonesoft.com vim.org
占用空间 14.2M 188M
Node+LSP
占100M
215.6M
主程序大(43M)
50.6M
带了插件
主程序8.6M
156.9M
语法文件+样式
(约100M)
64.9M
opengl+QT(40M)
22.7M
多国语言(10M)
55.9M
文档+多国语言+语法占30M
启动速度 <1秒 <1秒 >4秒 ~1秒 ~3秒 <1秒 <1秒 <1秒
大文件
(~500M)
300万行
~9秒
-行号正常
-跳转正常
-可编辑
-保存1秒
秒开
-行号正常
-跳转正常
-可编辑
-保存无延迟
秒开
-行号正常
-跳转正常
-可编辑
-保存无延迟
秒开
-行号异常
-跳转正常
-不可编辑
~4秒
-行号正常
-跳转正常
-可编辑
-保存耗时11秒
~1秒
-行号正常
-跳转受限:
Ctrl+G正常,
Ctrl+End受限(页内)
方向键受限(页内)
滚动条正常
-可编辑
-保存耗时(1秒)
~3秒
-跳转死掉
~4秒
-行号正常
-跳转正常
-可编辑
-保存4秒
(备份关)
大文件
(~1G)
600万行
~17秒
-行号正常
-跳转正常
-可编辑
-保存1秒
秒开
-行号正常
-跳转正常
-可编辑
-保存~0.5秒
秒开
-行号正常
-跳转正常
-可编辑
-保存~0.5秒
秒开
-行号异常
-跳转正常
-不可编辑
~7秒
-行号正常
-跳转正常
-可编辑
-保存耗时24秒
~3秒
-行号正常
-跳转同上
-可编辑
-保存耗时(1秒)
~5秒
-跳转死掉
~7秒
-行号正常
-跳转正常
-可编辑
- 保存8秒
(备份关)

大文件
(~5G)
3千万行
~85秒
-行号正常
-跳转正常
-可编辑
-可保存(7秒)
秒开
(后台加载5秒)
-行号可显示
-跳转无延迟
-可编辑
-保存~0.5秒
秒开
-行号正常
-跳转末尾延迟3秒
-可编辑
-保存1秒
秒开
-行号异常
-跳转无延迟
-不可编辑
~100秒
-行号正常
- 跳转无延迟
- 可修改不能保存
~15秒(大文件读写)
- 行号正常
-跳转同上
-可编辑
-保存耗时(5秒)
拒绝打开 ~36秒
-行号正常
-跳转正常
-可编辑
-保存耗时70秒(备份关)

大文件
(~10G)
6千万行
~185秒
- 跳转正常
-行号正常
-可编辑
-可保存(19秒)
秒开
(后台加载10秒)
-内存峰值900M
-行号正常
-跳转正常
-可编辑
-保存~0.5秒
秒开
-跳转末尾延迟10秒
-行号正常
-可编辑
-保存1秒
秒开
-跳转无延迟
-行号异常
-不可编辑
~300秒
-鼠标点几下就死
~1秒(超大文件读写)
- 行号变地址
(扫描行号用时5分50秒)
-Ctrl+G无法使用
(扫描后行跳转也失效)
-可编辑
-保存耗时(20秒)
拒绝打开 ~97秒
-跳转正常
-行号正常
-可编辑
-保存耗时200秒(备份开)
-160秒(备份关)
大文件
(~53G)
3亿行
-36分29秒
-内存高峰8G
-行号正常
-可编辑
-保存2分10秒
-秒开
(后台1分08秒)
-内存峰值7G
-行号正常
-可编辑
-保存约2秒
-秒开
(后台1分08秒)
-内存峰值36.9M
-行号正常
-可编辑
-保存1秒
-秒开
-跳转无延迟
-行号异常
-不可编辑
-无进度
-内存耗尽
-无法打开
-秒开
-内存占用60M
-行号变地址
-Ctrl+G不可用
-可编辑
-保存1分27秒
拒绝打开 -
-系统宕机
工作区
(会话保存)
支持 支持 支持 支持 支持
打开“关闭到休眠”
支持 不支持 不支持
多选区编辑 支持
支持 支持 支持 支持 不支持
(2.18.0缺失)
支持 插件
多标签页 支持 支持 支持 支持 支持 支持 不支持 支持
插件 支持
支持
不支持 支持
支持 支持 不支持 支持
插件库 ~20个
(官方收集)
10个
(官方集成)
- 160个
(官方收集)
不详 ~10+个
(官方收集)
- ~6000
(官方收集)
注:含语法、缩进等
插件开发 JScript脚本
可创建界面
C++编译
可创建界面
- Python脚本
可创建界面
脚本
(vb,c++,pas,js)
可创建界面
C++编译
可创建界面
- Vim脚本
插件门槛
容易 - 容易 容易 - 一般
用户脚本 JScript
VBScript
JScript
VBScript
JScript Python BasicScript
JScript
C++Script
PascalScript
不支持 不支持 Vim
支持 支持 支持 支持(插件) 支持 支持 不支持 支持
API文档 详细 详细 详细 详细 详细 简陋 - 详细
移动行 Alt+↑
Alt+↓
Ctrl+Shift+↑
Ctrl+Shift+↓
菜单
无快捷键
Alt+↑
Alt+↓
Shift+F11
Shift+F12
Ctrl+Shift+↑
Ctrl+Shift+↓
Alt+↑
Alt+↓
命令
(不好记)
删除空行 原生 原生 原生 插件 原生 原生 原生 命令
(不好记)
删除重复行 原生 原生 不支持 插件 原生 原生 原生 命令
(不好记)
编码转换 94种 144种
(保存)
8种 49种 99种 12种
保存时不能选编码
93种 49种
二进制编辑 读写正常 读写正常 读写正常 只读 浏览正常
编辑发疯
只读 不支持 读写正常
(要转来转去)
语法高亮 75种 30种 508种 315种(自选加载) 29种 61种 52种 697种
自定义语法 支持
规则强大
支持
规则一般
支持
规则丰富
支持
规则丰富(稍麻烦)
支持
规则丰富
支持
(弱:仅关键字列表)
不支持 支持
规则强大
文件比对 行级比对 行级比对 行级比对 字级比对 行级比对 字级比对 不支持 行级比对
代码主题 丰富 ≈没有 丰富 丰富 丰富 丰富 3个 丰富
CSV编辑 独孤求败
-按列对齐
-单元格编辑
-指定分隔符
-按列排序等
列编辑 支持 支持 支持 支持 支持 支持 支持 支持
插入序列 支持(用法要注意)
数字递增
数字递增
字母递增
数字递增 不支持
(插件?)
数字递增
字母递增
数字递增
固定字母
不支持 脚本
软件性质 商业 商业 商业 开源 开源 ~开源 开源 开源
成本 ¥158(买断) $48/年 $80/年 免费 免费 免费/捐助/注册 免费 免费

注:“跳转”指文件打开后,按ctrl+end跳转到文件末尾,检查大文件加载是否完整。“跳转正常”指没有延迟,文件打开很迅速。

文本比较能力对比

BeyondCompare 4 比对结果参考

注:BeyondCompare的比对结果不多说明,可以看出比对结果相当直观。

EverEdit文本比对

可用度:差

结论:只能达到行级的比对,无法充分满足日常比对需求!

EmEditor文本比对

可用度:差

结论:只能达到行级的比对,无法充分满足日常比对需求!

UltraEdit文本比对

可用度:差

结论:基础版只能达到行级的比对,无法充分满足日常比对需求!要更好的比对效果,请加钱~

CudaText文本比对

CudaText没有原生支持文本比对,但可以安装Differ插件

可用度:高

结论:完美!这个比对结果和BeyondCompare有得一拼,非常直观且准确!

RJ Texted文本比对

可用度:差

结论:只能达到行级的比对,无法充分满足日常比对需求!

Notepad--文本比对

可用度:高

结论:和BeyondCompare的比对结果媲美,可以满足日常比对需求。

Vim文本比对

可用度:差

结论:行级比对,比对结果没法看,无法满足日常比对需求。

后记

点评

注:以下描述仅代表个人观点,由于本人水平有限,难免出现错误,欢迎指正、交流!

文本编辑器的核心要素

  这里的文本编辑器,特指存在于记事本和IDE之间的一系列编辑器(或称程序员编辑器),它们大多具有代码着色功能,有些可以进行代码编译、工程管理等,但功能又不如IDE强大,各有特色,以满足用户使用记事本太弱,使用IDE又太重的心理需求。  
  在多如瀚海的文本编辑器中,如何才能选择一款称手的武器呢?本人根据自己的使用心得,总结了如下几点(基于个人经历,不一定适合每个人,请酌情参考):

功能

  • 基本功能:市面上的编辑器,不论商业编辑器还是开源编辑器,基本的编辑功能相差不大,如果只是普通的文本编辑,都可以满足工作需要。

  • 特殊功能

    • 二进制编辑:多用于特定行业用户,一般用户极少使用。优胜者:EverEdit(收费)、EmEditor(收费)、UltraEdit(收费)
    • 大文本编辑:多用于特定行业用户,比如查看日志文件等。优胜者:EmEditor(收费),UltraEdit(收费),Notepad--(免费)
    • 文本比对:日常使用频率较高,不限定行业。优胜者:CudaText(免费)、Notepad--(免费)
    • 列编辑:日常使用频率高,特别是插入序列,各行种业都可能遇到,用于批量生成配置指令等。优胜者:EmEditor(收费)、RJTextEd(免费)、Notepad--(免费)
    • 自定义语法:使用频率低,特殊行业可能存在诉求,常见的语法编辑器基本都支持了,自定义语法的场景非常少。
    • 工程管理:见仁见智吧,个人觉得用处不大,要开发软件,使用IDE更好。

性能

  既然用户没有选择IDE来处理工作,那肯定是希望编辑器不要太重,轻量、响应迅速是一个文本编辑器的本分!

  文本编辑器如果不能做到<font color="red">秒开</font>”,相当于强行劝退用户了!

   **点名批评:UltraEdit,RJ Texted,**   
  不管基于什么原因,启动花了3、4秒,用户是不能原谅的!

扩展性

  扩展性分两个方面, 一是插件,二是用户脚本。
  • 插件:编辑器核心功能之外的,满足用户比较通用场景的功能组件,具有一定的普遍性,比如:导出RTF、导出HTML等。插件的实现大致分为两派,脚本派和Dll派,使用脚本开发插件具有门槛低,不依赖开发环境,兼容性好等优点,往往插件市场繁荣的编辑器都是使用脚本开发插件,如:Vim、VSCode等
  • 用户脚本:由用户自己编写的脚本,用于批量或者自动化的完成某一特定的任务,该脚本仅限于用户的特定场景使用,一般不具有通用性。目前常见的编辑器都具有脚本功能,属于核心必备功能。

附录

测试环境

测试环境

CPU: 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz

内存:16G DDR4

硬盘:NVMe (PCle x4 8.0 GT/s @ x4 8.0 GT/s) 1T

OS:Microsoft Windows 10 Professional (x64) Build 19045.3570 (22H2)

测试数据

测试数据

测试数据使用awk脚本生成,命令如下:

echo ""|./gendata.awk --c2 --n3000000 > test_500M.csv

echo ""|./gendata.awk --c2 --n6000000 > test_1G.csv

echo ""|./gendata.awk --c2 --n30000000 > test_5G.csv

echo ""|./gendata.awk --c2 --n60000000 > test_10G.csv

echo ""|./gendata.awk --c2 --n300000000 > test_10G.csv

附:gendata.awk为生成测试数据的awk脚本,请在gitbash、cygwin环境下执行。
https://files.cnblogs.com/files/blogs/831999/gendata.awk.gz?t=1727496196&download=true

测试方法

以下指标的评估方法可能存在不严谨,相关结论仅做为参考!

  • 插件是否支持:如果编辑器支持脚本语言,但无法提供编程GUI集成到编辑器则认为只支持用户脚本,而不算支持插件
  • 插件门槛:插件开发需要使用编译软件,门槛定义为“”;使用通用脚本语言,门槛定义为“容易”,使用非通用脚本,门槛定义为“一般”。
  • 跳转测试:指打开文件后,按Ctrl+End快捷键跳转到文件末尾,检查编辑器是否真正打开文件。
  • 大文件编辑:修改文件最后一行最后的字符,并保存。
  • 16进制编辑:打开一个非文本文件,本文测试中是选择了一个PDF文件,编辑器打开后正文应该显示16进制数据,右侧显示ASCII字符。


Copyright 2004~2024 太阳雨 All Rights Reserved.

posted @ 2024-09-28 11:58  tyysoft  阅读(225)  评论(0编辑  收藏  举报