|
编者按:本文详细介绍了VIM的历史、基本知识等,并介绍了作者作为一个程序员经常用到的一些相关资源。同时包含了大量的参考文献,适合想深入了解VIM的读者。
如果您从未接触过VIM,推荐先看看VIM的中文帮助文档和xbeta的《世界第二的VIM:普通人的编辑利器》。
一、VIM的历史
1. ed
ed是UNIX上最古老最基本的编辑器,它最初是UNIX之父Ken Thompson编写的,他第一次在ed中应用了正则表达式(regular expression),这个创举将RE理论带入了实践,对UNIX界造成了深远的影响。 实际上ed是受来自加州伯克利大学的QED编辑器的影响,Ken便是从这所院校这里毕业的。
ed是一种行模式编辑器,下面是一个ed会话的例子:
- $ ed greeting
- 0# 因为新创建文件,所以读入了0个字节
- a# 进入编辑模式(append)
- hello world, eveyone.# 输入一行文本
- .# 回到命令模式
- 1p# 显示(print)第一行
- hello world, eveyone.
- 1c# 最后一个词写错了,修改(change)第一行
- hello world, everyone.
- .# 回到命令模式
- 1p# 重新显示第一行,这回发现无误
- hello world, everyone.
- q# 退出(quit)
- ?# ?表示没有保存或者命令不认识
- w# 保存(write)
- 23# 提示写了23个字节
- q# 退出
也许大家觉得这个编辑器很难用,可是在70年代,许多使用UNIX的人都是用廉价的终端机通过电话线连到UNIX服务器上的,因为传输速率慢,所以这种简洁的行模式编辑就很有意义,现在虽然硬件有了长足的发展,ed编辑器很少有人用了,但是它的很多理念比如命令字符、正则表达式却在它的很多后辈身上体现出来。下面这个网址有一些ed的笑话,从中大家或多或少能体会到那个时代人们的某种精神。
- http://www.gnu.org/fun/jokes/ed.msg.html
- GNU ed:http://www.gnu.org/software/ed/ed.html
- Reference:http://en.wikipedia.org/wiki/ed
- http://snap.nlc.dcccd.edu/learn/nlc/ed.html
- http://cm.bell-labs.com/cm/cs/who/dmr/qed.html
- http://www.answers.com/topic/ken-thompson
2. ex
ex是ed的扩展,实际上vi构建在ex之上,vi引入了大家所熟悉的全屏编辑模式。
3. vi
随着硬件的发展,UNIX上许多全屏模式编辑器被开发出来,pico,nano,joe,jed,jove,但是最为广泛使用的无疑就是VI(nvi,elvis,vim等)和Emacs(GNU Emacs,XEmacs等)。
1976年左右Bill Joy开发了vi,他也是伯克利大学的毕业生,后来他跟其他人一起成立了Sun Microsystems公司并成为了Sun的首席科学家。一开始Bill开发了ex,尔后开发了vi作为ex的visual interface,也就是说vi允许一次能看到一屏的文本而非一行,vi也因此得名。在当今的UNIX系统上,可能没有缺省安装Emacs,但是肯定会有vi,当然,ed编辑器也必定存在:-)
下面引用《Unix技术大全——Internet卷》的一段文字:
“早期,当键盘和视频终端成为最新的计算机交互手段时,人们开发了VI。那时候的键盘不具有目前熟悉的全部功能键,所以,VI就设计成只需要打字机的键盘加上退出键就能完成对文本的输入和修改(现在有的还接受一些其他的键输入方式,如光标控制键)。尽管看起来受了限制,不能充分利用现代键盘新增的许多键,可是‘祸中有福’,限制带来的好处是手指不离开打字区就能完成所有的编辑工作。”
Reference(参考):
- http://www.bellevuelinux.org/vi/history.html
- http://www.theregister.co.uk/2003/09/11/bill_joys_greatest_gift/
4. VIM
技术不断进步,需求也在不断提高,VI的各种变种也不断涌现,知名的有nvi,elvis,VIM,vile,yzis,其中移植性最好、特性最多、使用最广的当属VIM,VIM主要是Bram Moolenaar开发的。最初Bram在Amiga计算机上改进一个叫Stevie的VI版本,他称之为“Vi IMitation”。随着功能的逐渐丰富,VIM的含义也就改成了“Vi IMproved”。相比原始的VI,VIM增加的一项最重要的功能便是多级撤销,VI只支持一级撤销。
下面是VIM的重要版本历史:
- DATEVERSIONMilestone
- 2005Vim 7.0aaSpell Checking,multi tabpage
- 2000 Jul 09Vim 6.0aFolding (and more)
- 1998 Feb 19Vim 5.0Syntax coloring/highlighting
- 1996 May 29Vim 4.0Graphical User Interface (Robert Webb).
- 1994 Aug 12Vim 3.0Support for multiple buffers and windows.
- 1992Vim 1.22Port to Unix. Vim now competes with Vi.
- This was when Vim became Vi IMproved.
- 1991 Nov 2Vim 1.14First release (on Fred Fish disk #591).
- 1988Vim 1.0Vi IMitation on the Amiga
Reference:
- Learning the vi Editor,6th Edition,O'Reilly
- http://www.vmunix.com/vim/hist.html
- http://www.vmunix.com/vim/
- http://www.vim.org
- vim :help vi_diff.txt
- :help version4.txt
- :help version5.txt
- :help version6.txt
[1] [2] [3] [4] [5] [6] [7] [8] 下一页 |