Vim

更新时间:2024-03-09 01:30

Vim是一个类似于Vi的高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。Vim是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线。

简介

Vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。

vim的设计理念是命令的组合。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。同时VIM与很多快捷键设置和正则表达式类似,可以辅助记忆。并且vim针对程序员做了优化。

发展历程

Bram Moolenaar 在 80 年代末购入他的Amiga计算机时,Amiga 上没有他最常用的编辑器vi。Bram 从一个开源的 vi 复制 Stevie 开始,开发了 ViMS-DOS上。从那个时候开始,Vim 的全名就变成 Vi IMproved了。

在这之后,Vim 加入了不计其数的新功能。做为第一个里程碑的是 1994 年的 3.0 版本加入了多视窗编辑模式(分割视窗)。从那之后,同一荧幕可以显示的 Vim 编辑文件数可以不止一个了。1996 年发布的 Vim 4.0 是第一个利用图形接口(GUI)的版本。1998 年 5.0 版本的 Vim 加入了 highlight(语法高亮)功能。2001 年的 Vim 6.0 版本加入了代码折叠、插件、多国语言支持、垂直分割视窗等功能。2006 年 5 月发布的 Vim 7.0 版更加入了拼字检查上下文相关补完,标签页编辑等新功能。 2008 年 8 月发布的 Vim 7.2,该版本合并了 vim 7.1 以来的所有修正补丁,并且加入了脚本的浮点数支持,2010年08月15日,历时两年的时间,vim又发布了vim 7.3这个版本,这个版本修复了前面版本的一些bug,以及添加了一些新的特征,这个版本比前面几个版本来的要更加优秀。

十年以后,Vim 终于发布了一个新的大版本 8.0,结束了从 2006 年 5 月 7 日开始的 7.0 世代。虽然这十年间,Vim 也一直在不断更新,从 7.0 到三年前的 7.4,每隔一两年或两三年就会有个小版本更新,但是这次跨越大版本更新,带来了不少新的特性,据说有一些是从其它的 Vi 流派吸收来的特性。

2018年又发布了Vim 8.1版本,Vim 8.1的主要新功能是支持在Vim窗口中运行终端。 它建立在Vim 8.0中添加的异步功能之上。 终端窗口可用于多种用途,也用于测试,以获取屏幕截图并将其与预期状态进行比较。 这允许测试交互式操作,例如弹出菜单。

2023年 1 月 ,Vim 推出了 9.0.1160 版本更新,修复了 ufunc_T 错误分配大小的 ASAN 错误。

VIM优点

高效率移动

高效的输入

VIM功能及优势

Vim有许多有用的功能,可以与现代文本编辑器竞争,如Sublime Text,Atom,UltraEditjEdit。它们包括支持正则表达式的搜索,轻松重复命令的能力,直接记录和执行宏,自动完成文件合并,鼠标集成,拼写检查,语法突出显示,分支撤消/重做历史,支持流行网络协议和文件存档格式等。

虽然Vim的功能令人印象深刻,但其真正的优势在于其可扩展性。 Vim有自己的脚本语言,称为Vim脚本(也称为vimscript或VimL),用户可以通过多种方式使用它来增强Vim,例如为其他编程语言启用语法高亮,自动化语法检查或将Vim与其他应用程序和服务。

大多数经验丰富的Vim用户很难想象在没有任何脚本的情况下使用文本编辑器,并且有很多可供选择。 Vim Awesome是世界上最大的Vim脚本目录之一,其中包含超过18,000个。一些最值得注意的Vim脚本包括vim-multiple-cursors,它允许您创建多个选择,NERDTree,它在侧面板中显示交互式文件树视图,以及Emmet,一个强大的HTMLCSSJavaScript完成工具。

除了可扩展性之外,Vim还具有高度可配置性,包含Vim核心全局设置(称为vimrc)的文件可以在各个Vim安装之间共享。如果您不想在闲暇时间搞乱设置和编辑配置文件但仍希望充分发挥Vim的优势,可以从互联网上下载许多现成配置文件中的一个,或者使用Vim等工具创建一个配置。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}