为什么Vim总会和Emacs相提并论呢?因为Vim号称编辑器之神,Emacs则是神的编辑器;Vim编程唯快不破,插件遍天下,Emacs则宣称自己是伪装成文本编辑器的操作系统,所谓针尖对麦芒,就是这样的效果,写完Vim这个系列,我希望还有机会写写Emacs。
缘起
我从2000年开始接触Vim,当时正值第一波互联网浪潮,我刚毕业不久,一如现在的热血青年,投身到互联网的大熔炉中(当然和现在的互联网弄潮儿不一样的,当年我们大部分都被熔掉了)。
当时的公司聚集了很多清华北大的兄弟,技术牛人扎堆,大家清一色使用Vim在服务器端编程,语法高亮都不设,内部BBS也是水木清华那种,通过终端访问,非常高端大气。走进办公室一眼望去,满目皆是黑漆漆的屏,绿瓦瓦的字,每个人都在那里噼噼啪啪的敲击键盘,韵律十足,我想,这简直酷毙了!
当时我还在使用Editplus编程,隶属菜鸟帮。别人的开发、编译和发布环境都在服务器端,而我则需要在本地编写好程序,通过Editplus的ftp功能上传到服务器端,再进行调试、测试和发布,非常麻烦。
所谓文人相轻,我这种行为遭到了小伙伴的无情嘲讽,当年的Mac君只好眼泪往肚子里咽,把愤怒都发泄在键盘上,每天在满天星斗的夜色中学习Vim技法,在清晨的微光中编译Linux内核,上午敲打键盘输出Perl程序,中午吃完五又四分之一口米饭之后开始研习Vim的多窗口和标签……由于单身住在公司,时间充裕到让你不好意思,很快小成,编码时鼠标锁进抽屉,双手敲击键盘上下翻飞,成就感十足,我对语法高亮情有独钟,经常把自己的界面配置的花花绿绿,没事看看也是件乐事。
自此以后,与Vim结下不解之缘,十几年过去了,工作一直没有离开过Vim,断断续续一直在用。到了2009年,我开始把工作环境完全切换到了Mac上,记得当时打开Mac的终端时,欣喜若狂的想,这不就是Vim、Shell和IDE的完美集成么?
场景
在不同的场景下采用最合适的工具,永远是最佳选择。这是就会有人问,Vim适合什么场景呢?简单说来,Vim比较适合Unix/Linux服务器端编程,当然这因人而异。我个人使用Vim主要用来进行Shell/Python/C编程。在Unix/Linux服务器端编辑和修改文件也离不开Vim,另外由于我个人工作环境是Mac,所以改个文本文件查个代码的,也就用Vim顺手做了。
与很多程序员交流,大家会认为不用Vim一样能修改服务器端的文件,ftp拉下来,改好了再传上去。这当然是一种方案,但不是最优方案。而且极端情况下需要直接在客户服务器上解决问题,你总不能说“骚瑞,Sir,我不会在Linux下编辑文件,Down一份下来先”?这就像用Vim编写Markdown文件一样,能不能用,当然可以,甚至有人已经为Vim开发了Markdown插件,可以编写时通过快捷键查看转换的HTML文本,但是显然不如Mou/Byword。
编写JavaEE、HTML/CSS/JS、Objective-C,最优方案可能是Eclipse、IDEA、XCode等,这些优秀的工具可以帮助我们提升效率,减少错误,但是如果你还想更进一步,那么Vim绝对值得拥有。
Vim用了很多年,也总结果过很多次,但不完整,我想这次在MacTalk能有始有终,完成这个系列。网络上介绍Vim的文章浩如烟海,各种精巧的用法数不胜数,看起来还是比较费时费力。Vim本身开箱即用,什么都不配置也可以使用其基本功能,如果大家掌握了基本操作,以下内容可以帮助提升效率,打造你的专属Vim。(待续)