VIM
摘要:VIM简介
简介
Vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。
vim的设计理念是命令的组合。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。同时VIM与很多快捷键设置和正则表达式类似,可以辅助记忆。并且vim针对程序员做了优化。
发展历程
Bram Moolenaar 在 80 年代末购入他的Amiga计算机时,Amiga 上没有他最常用的编辑器vi。Bram 从一个开源的 vi 复制 Stevie 开始,开发了 Vim 的 1.0 版本。最初的目标只是完全复制 vi 的功能,那个时候的 Vim 是Vi IMitation(模拟)的简称。1991 年 Vim 1.14 版被 "Fred Fish Disk #591" ——Amiga 用的免费软体集收录了。1992 年 1.22 版本的 Vim 被移植到了 UNIX 和MS-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,以及添加了一些新的特征,这个版本比前面几个版本来的要更加优秀。 [2]
十年以后,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中添加的异步功能之上。 终端窗口可用于多种用途,也用于测试,以获取屏幕截图并将其与预期状态进行比较。 这允许测试交互式操作,例如弹出菜单。 [3]
VIM优点
高效率移动
在插入模式之外基本上来说,尽可能少的呆在插入模式里面,因为在插入模式里面 VIM 就像一个“哑巴”编辑器一样。 VIM 的强大之处在于他的命令模式!
使用 h、j、k、l
使用 VIM 高效率编辑的第一步,就是放弃使用箭头键。使用 VIM就不用频繁的在箭头键和字母键之间移来移去了,这会节省很多时间。当命令模式时,可以用 h、j、k、l 来分别实现左、下、上、右箭头的功能。 [2]
在当前行里面有效的移动光标
很多编辑器只提供了简单的命令来控制光标的移动(比如左、上、右、下、到行首/尾等)。VIM 则提供了很多强大的命令来满足控制光标的欲望。当光标从一点移动到另外一点,在这两点之间的文本(包括这两个点)称作被“跨过”,这里的命令也被称作是 motion。
在整个文件里面有效移动光标
VIM 有很多命令,可以用来到达文件里面你想到达的地方。
高效的输入
使用关键词自动完成
VIM 有一个非常漂亮的关键词自动完成系统。使用关键词自动完成功能,只需要输入开始几个字母(比如 iAmAL),然后按 <C-N>(按住 Ctrl,再按 N)或者 <C-P>。如果 VIM 没有给出你想要的词,继续按,直到你满意为止,VIM 会一直循环它找到的匹配的字符串。
聪明的进入插入模式
VIM 提供了很多进入插入模式的命令。
有效的移动大段的文本
使用可视选择(visual selections)和合适的选择模式。不像最初的 VI,VIM 允许你高亮(选择)一些文本,并且进行操作。
在可视选择模式下剪切和拷贝
粘贴
粘贴很简单,按 p。
使用多重剪贴板
很多编辑器都只提供了一个剪贴板。VIM 有很多。剪贴板在 VIM 里面被称为寄存器(Registers)。你可以列出当前定义的所有寄存器名和它们的内容,命令为“:reg”。最好使用小写字母来作为寄存器的名称,因为大写的有些被 VIM 占用了。
避免重复
在 VI 里面,输入 . (小数点符号),将会重复输入的上一个命令。
使用数字也是 VIM 强大的而且很节省时间的重要特性之一。在很多 VIM 的命令之前都可以使用一个数字。

