上周在公司内部作了一次《VIM入门与进阶》的主题分享,这里把分享内容公布出来,希望对一些朋友有用。

演示文档下载,我的vim配置放在github上。

以下是一些presentation notes,前面的数字对应keynote文档中实际的slide页码。

1. 只要是程序员,多少都会知道vim,你会看见身边有同事在用它,有一些狂热的爱好者在向你推销它。在美团更是耳濡目染,如果不用vim都感觉自己是少数派。

2. 计算机发展史上出现过不计其数的编辑器,它们中的绝大多数都昙花一现,只有两种编辑器屹立不倒,赢得了最庞大最忠实的用户群,一个是vim,一个是emacs。

3. 在学校作linux版主的时候就开始学习接触vim,但并没有用在严肃的编程活动中。直到加入现在的团队之后才开始完全使用vim来工作。我也并不是一开始就皈依vim教,同样经历过一番痛苦的抉择。

4. Bill Joy就像普罗米修斯,给黑暗的程序员世界带来了火种。传说Bill Joy用一个周末写出了vi,又用一个周末重写了BSD kernel, 再用一个周末写出了最稳定的TCP/IP实现,注意:Bill Joy这个时候还是加州伯克利大学一个穿T恤的穷学生。各位都在使用mac系统,其实都在享受着Bill Joy带来的恩惠。Bram给vi注入了新的生命,把vi带到了一个新的高度。

5. 无出其右的编辑速度,秒杀所有的编辑器。

6. 千人千面,在公司走一圈,你会发现每个人使用vim的方法都不一样。不过大体上,公司内部有两个比较大的派别,一个是亚非系,一个是魏增系。尤其对我这种专注做前端的人而言,纯粹的视觉动物。一个编辑器如果配色很丑,那结果就是NO!无论在哪个unix发行版都能找到vi的程序,linux和mac默认是vim,bsd默认是古典版本的vi。这样的好处是你每次到一台机器,都有称手的兵器可以用。

7. 为什么vim会有如此快的编辑速度呢?这得益于键盘上的每一个键都有它特殊的功能,就好像我们玩魔兽争霸,里面每一个兵种都有它自己的用途。在普通模式下,所有的键都代表某种操作命令,不需要ctrl、shift、cmd、option这些修饰键,不需要鼠标,甚至手都不用离开主键盘区。

8. vim有这么多优点,那有没有缺点呢?有,最大的缺点可能就是看起来很复杂。我今天就带大家一起剥开vim的果壳,一起来看看vim到底有什么东西。

40. 相对于大部分编辑器,vim的学习曲线是非常陡峭的,没有熟悉很多命令之前,可能什么也做不了,这使得大部分人望而却步。

41. 很多人在第一级台阶的时候就已经退缩了。只有翻过最险峻的几个台阶之后,才会大彻大悟,发现另外一番风景。使用vim最爽的时刻就是:"我靠,你是怎么做到的?!",为了这一句惊叹,你可能需要付出很多的努力。尽管如此如此,学习vim不是那么轻松,当然也没有那么难,关键看是否掌握了一些方法。

42. Unix知识在传统上都是通过言传身教的方式来传承的,vim学习方法中最重要的就是要找对一个好老师。好的老师可以给你正确的指导,可以让你少走很多弯路,可以给你鼓励,可以给你勇气。现在你在美团,那你非常地幸运,公司里面有很多高手都可以当你的老师。

43. 和所有的Unix工具一样,手册是最好的参考书。

44. practice makes perfect。vim的操作只有在不断的练习中才能够熟练掌握,vim的真义也只有在不断的练习中才能够体会。要让你的操作熟练到纯粹是手指的条件反射。

46. 纯属个人观点,可以辩证的来看。

49. 两面派,对vim和emacs都很虔诚,但是从来不参与圣战。

51. 使用vim可以提高效率,但和优秀程序员没有直接的关系,会使用vim并不代表你有多么牛。没人会在乎那些大牛使用什么编辑器,除了一些狂热爱好者以外。但是,我有一点可以保证,就是在美团,你不仅可以学会vim,而且还可以学得很好。