3. 黑客的编辑器( 二 )


1.3 Vim不只是Vi
Vim是Vi最受欢迎的变种之一,除了继承了Vi迅捷的编辑方式, Vim的功能已经比原始的Vi强大得多 。这也得益于它可以用Vim脚本无限地扩展 。上已经有数千个脚本了,给Vim增加各种各样的特性和功能 。
为了证明Vim的可扩展性不输于Emacs,也有用户写了在Vim中玩游戏、运行Shell、和集成GDB在Vim内部调试的插件 。客观地讲,Vim的脚本语言与Emacs的ELisp相比,略显逊色,但这丝毫不妨碍它把Vim扩展成非常优秀的编辑器 。
说到底,Vim的前身Vi和Emacs的设计采用了不同的哲学, Vi更符合Unix传统,它通过管道机制和系统内各种积木工具打交道,它讲究的是和系统内的工具程序协作来完成用户的任务 。和Emacs相比,它的定位很明确,就是要做一个强大的编辑器 。因此Vim的绝大部分扩展,都是为了更好地完成编辑文本的任务 。
海纳百川,有容乃大 。Emacs和Vim通过别的编辑器无法比肩的可扩展性,不断吸收广大用户的智慧,是它们能成为“神器”的原因之一 。
2. 特立独行的魅力 2.1 可扩展性让你倾注了灵魂

3. 黑客的编辑器

文章插图
一旦你意识到Vim或Emacs的强大,你就踏上了不停发掘它们潜力的漫漫长路 。你不停地改进自己的配置文件,你不停地搜索更好的插件,甚至有一天你开始动手写自己的插件 。就像剑客保养自己的剑一样,你也甘心花时间提升你的Vim或Emacs 。经年累月,不知不觉,你已经在那把剑上倾注了你的灵魂 。
2.2 独特的操作方式让你中了毒
Emacs和Vim有着迥异的操作方式,却成了Unix/Linux世界中两种代表性的操作方式,有些软件的操作方式类似Vi,而有些软件的方式类似Emacs,甚至有些软件提供了Vi的键绑定和Emacs的键绑定让你选择 。而无论哪种操作方式,对用户来说都是古怪的 。虽说古怪,多少代人也验证了这两种操作方式的高效 。
Emacs号称Ctrl到死的编辑器 。其实它几乎用了所有的辅助键,听说过没有,Emacs = Esc + Meta + Alt + Ctrl + Shift 。所以高德纳大师说操作Emacs,就像弹奏管风琴 。Emacs使用非常多的组合按键,这大概也是它高效于其它无模式编辑器的原因之一 。你也可以定义自己的组合键序列,调用自己写的lisp函数,完成自己想要的功能 。
Vi一向是以快速的文本编辑闻名于世的 。它的按键更简洁,通常是单个字符按键,就实现某种操作 。但这是以有模式为代价的 。你要不停地按Esc在从它的插入模式返回模式 。客观得讲,在文本编辑方面, Vim比Emacs高效,因为它提供了一些Emacs没有对应功能的操作来辅助高效的文本编辑 。但它的模式切换也让一些人受不了,于是那些人选择了 Emacs 。
不管你选择了Vim还是Emacs,你都要为习惯它们独特的操作方式而努力,这是一个技艺积累的过程 。当你习惯了Vim或Emacs,你会有欲罢不能的感觉,你希望用它们完成尽可能多的任务,因为你再用别的编辑器也已经不习惯 。
用Vim或Emacs就像吸食毒品,慢慢地就会上瘾 。它们会带给你渐渐强烈的快感,但你也向它们献出了自己的灵魂 。这时,你只能称它们为神器 。
3. 黑客的编辑器
Vim的前身Vi的作者Bill Joy和Emacs的作者都是那个时代著名的黑客,所以这两款编辑器一开始面向的主要用户就是写程序的人,现在仍然是 。它们对编程加入了越来越多的支持,如语法高亮、智能缩进、关键字补全甚至集成调试 。也有越来越多的程序员从IDE转向了Vim和Emacs 。
用Vim和Emacs编程到底有什么好处?我想首先是它们高效的编辑操作会提高你的编程效率 。其次你可以用它们完成各种语言的编程,所谓一剑在手,夫复何求 。你不用再因为编程语言不同去学习不同的IDE的使用,那些庞大的IDE的升级换代也与你再不相关,你把精力用于学习编程语言本身就好了 。听说和微软内部开发也都不用IDE的,他们也会用Emacs或Vim 。