vi家族编辑器资讯发布
哇塞,今天要给大家介绍超厉害的vi家族编辑器相关资讯啦!对Linux用户的调查显示,`vi`家族编辑器可是最受欢迎的呢。`vi`编辑器是基于终端的文本编辑器,历史能追溯到1977年。为啥这么多人选它呢?因为一旦掌握,编辑效率超高,而且它几乎无处不在,大多数IDE都提供`vi`键位绑定选项,像VS Code、IntelliJ IDEA和XCode。
vi家族编辑器发展历程
1979年发布的`vi 2.0`在当时可是个庞大软件,20世纪80年代,只有有AT&T商业UNIX®许可证的用户才能用。所以很多人开发了`vi`的免费克隆版,好在80年代的个人电脑上运行。
vi克隆版和衍生版大盘点
如今有好多`vi`克隆版和衍生版,我自己整理了一份包含它们及其发布日期的列表哦。不过有些项目可能停止维护了,但因为它们可能多年才发一次新版本,所以很难判断。
各版本编辑器特点
原始ex/vi(1977 - 2017?)
这是原始的2.11BSD vi,升级后支持UTF - 8,还修复了POSIX兼容性问题。不过它没有重大的“用户体验”改进,编辑非常大的文件时可能会出问题。
STevie(1987 - 1989)
这是为Atari ST和Amiga开发的克隆版。要是你没有Atari ST或Amiga,就不用考虑它啦,而且就算有,可能也有更好的选择。Vim就源自STevie。
Elvis(1990 - 2024?)
它是最早的`vi`克隆版之一,能运行于MS - DOS、Minix等20世纪90年代初的系统。Elvis进行了改进,支持多个编辑缓冲区、多个窗口和语法着色,用文件缓冲区编辑,能处理比可用内存更大的文件,还被用于BSD Unix的80386端口。
xvi(1992 - 2017?)
这是STevie的一个衍生版,增加了多个窗口和缓冲区,可能是最小的`vi`克隆版。
Vile(1991 - 至今)
它最初源自Microemacs,采用`vi`风格编辑,有更多模式,增加了无限撤销、UTF - 8支持、语法高亮等功能。
Vim(1991 - 至今)
它可能是使用最广泛的`vi`克隆版,源自STevie。增加了窗口、多个缓冲区、各种脚本选项和UTF - 8支持,能处理非常大(GB级)的文件,目前还整合了大语言模型(LLM)生成的代码。
nvi(1994 - 至今)
它基于Elvis,是`vi`的重新实现,核心行为与原版相同,被用于4BSD Unix版本。增加了对其他脚本语言(Perl和Tcl)的支持,引入用数据库存储文件数据的方式,能打开大约1GB大小的文件,但会抱怨数据库页面大小,还不支持UTF - 8文本。
OpenBSD vi / OpenVi(1994 - 至今)
它是`nvi`的一个衍生版,经过大量清理,但不支持UTF - 8文本,也缺少宏、脚本和语法高亮功能。
BusyBox vi(2001 - 至今)
BusyBox包含一个小型但可用的`vi`实现,能在Alpine Linux和嵌入式系统中遇到它。
IllumOS vi(2005 - 至今)
它是AT&T UNIX® SVR4中的`vi`,2005年作为OpenSolaris的一部分开源。
nvi2(2011 - 至今)
它为nvi增加了UTF - 8支持以及各种CJK编码支持。
neovim(2014 - 至今)
它对Vim进行了清理,移除了对旧平台的支持,增加了LSP支持、内置终端模拟器、用Lua脚本替代VimScript等许多功能,目前也整合了大语言模型(LLM)生成的代码。
EVi(2026 - 至今)
它是Vim在开始整合大语言模型(LLM)生成代码之前的一个分支。
Vim Classic(2026 - 至今)
它是Vim 8.3版本(大语言模型代码之前)的一个分支,旨在由人工进行长期支持。
ToyBox vi(2027?)
非GPL版的BusyBox克隆版ToyBox可能会有自己的小型`vi`实现。
非真正vi但受其影响的编辑器
Viper(1995 - 至今)
它是Emacs的一套`vi`键位绑定。
Kakoune(2012 - 至今)
它是一款受`vi`启发的模态编辑器,键位绑定略有不同,设计得非常简洁,部分功能依赖外部程序。
Evil(2013 - 至今)
它是在Emacs之上实现的另一种`vi`模态编辑方式。
vis(2015 - 至今)
它类似`vi`,但采用了Plan 9编辑器`sam`的结构正则表达式和其他功能。
Helix(2021 - 至今)
它是另一款新的模态编辑器,受Kakoune和Vim启发,键位绑定有所不同。
留问环节
这么多vi家族的编辑器,你最青睐哪一款呢?