几款文本编辑器横向比较

news/2024/11/17 11:31:00/文章来源:https://www.cnblogs.com/tyysoft/p/18437200

几款文本编辑器横向比较

关键字: 大文件、编辑器

编辑器功能及性能比较

免责声明

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

概述

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

编辑器: 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环境下执行。

测试方法

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

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


Copyright 2004~2024 太阳雨 All Rights Reserved.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/805114.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设备云平台

技术路线(同时支持前后端分离 / 前后端一体,可用于网关或者服务器部署) 前端:layui-v2.9.17 后端:Net8.0 使用组件 Swagger、Jwt、Freesql、MiniExcel、MemoryCache(存储登录用户信息,代替HttpContext.Session,也可使用Redis)系统架构 非市面上繁杂的架构(Model、Ser…

系统集成项目管理工程师笔记1 - 第一章 信息化发展

基础知识 第一章 信息化发展 1.1 信息与信息化 1.1.1 信息基础信息物质、能量以及其属性的标示的集合,是确定性的增加。以物质介质为载体,传递和反映世界各种事物存在方式、运动状态等的表征。信息不是物质,也不是能力。以一种普遍形式,表达物质运动规律,在客观世界中大量…

基于CTFshow的文件上传二次渲染绕过与CTF实战

1. 二次渲染简介 二次渲染指的是上传的文件(如图片),为了显示的更加规范(尺寸、像素),网站会对文件进行二次处理,经过解码或转换可能导致其中的恶意代码失效。例如,后门程序在图像渲染过程中可能被清除或无法执行。 2. 二次渲染存在性判断 2.1 文件大小变化 访问上传的…

一万次悲伤 吉他谱

本文来自博客园,作者:ukyo--夜王,转载请注明原文链接:https://www.cnblogs.com/ukzq/p/18437154

抖音快手OBS虚拟摄像头直播被误判录播如何修改注册表

使用OBS虚拟摄像头容易被检测为录播解决办法参考增加视频内容的动态性:在OBS中使用多个视频源,如实时摄像头画面、屏幕共享、图像幻灯片等,并且定期切换这些源,以模拟真实直播时的操作。使用摄像头捕捉真实画面:将真实摄像头捕捉到的画面作为OBS的一个场景,这样可以提供实…

E60 树形DP+贪心 P3574 [POI2014] FAR-FarmCraft

视频链接: P3574 [POI2014] FAR-FarmCraft - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)// 树形DP+贪心 O(nlogn) #include <iostream> #include <cstring> #include <algorithm> using namespace std;const int N=500005; int head[N],to[N<<1]…

NIO

NIO Java在1.4版本开始,引入了NIO,称为Java New IO。又称老的阻塞IO为OIO(Old IO)。 NIO与OIO对比:OIO是面向流,操作的是字节。NIO引入了Buffer和Channel,操作的是缓冲区。OIO是阻塞的,NIO是非阻塞的OIO没有Selector的概念NIO的三大组件如下所示。 Buffer 数据存储的媒…

课后作业

30道四则运算题 定义了一个字符数组将四种符号存储到数组中,然后定义了stringbuilder类,随机调用,实现随机出现,在for循环中实现目标--30道编程题。 原码反码补码相关概念 原码:是二进制表示数值的方法,最高位为符号位,0为正数,1为负数。 反码:正数的反码与原码相同,…

京东面试:RR隔离mysql如何实现?什么情况RR不能解决幻读?

文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 实现技术自由,…

固态硬盘接入电脑没有反应

当固态硬盘(SSD)接入电脑后没有反应时,可能由多种原因造成。以下是一些常见的原因及其解决方法: 一、物理连接问题 检查接口连接: 确保SSD的SATA接口或M.2接口(视SSD类型而定)与主板连接牢固,没有松动或错位。 检查SATA数据线或M.2插槽是否损坏,如有必要,更换新的数据…

一些超好用的 GitHub 插件和技巧

聊聊我平时使用 GitHub 时学到的一些插件、技巧。聊聊我平时使用 GitHub 时学到的一些插件、技巧。 ‍ ‍ 浏览器插件 在我的另一篇博客 浏览器插件推荐 里提到过跟 GitHub 相关的一些插件,这里重复下:Sourcegraph:在线打开项目,方便阅读,将 GitHub 变得和 IDE 一般,集成…