VIM入门与进阶
上周在公司内部作了一次《VIM入门与进阶》的主题分享,这里把分享内容公布出来,希望对一些朋友有用。我的vim配置可以去github下载。
演示文档
pdf格式:http://panweizeng.com/download/vim-meituan.pdf
keynote格式:http://panweizeng.com/download/vim-meituan.key
以下是一些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,而且还可以学得很好。
Nos. 发表于2011年05月09日 10:56 pm
vim 党前来学习~
zhpengg 发表于2011年05月09日 11:16 pm
赞,不过文中提到的类似Ctrl+w这种组合键后边的字母应该都是小写的。
foxwoods 发表于2011年05月09日 11:31 pm
不错,很务实。
evan 发表于2011年05月10日 12:13 am
代表亚非大人的忠实走狗前来围观
ljp 发表于2011年05月12日 1:25 am
哈,另我好奇的是楼主是柳州的 :D ,做为一个普通用户平时也用vim或emacs玩玩,虚心学习啊。。。
blankyao 发表于2011年05月30日 10:19 pm
vim下有什么插件可以像eclipse一样显示出javascript的代码结构不?
潘 发表于2011年05月31日 3:58 pm
@blankyao 暂时还没有发现
blankyao 发表于2011年06月02日 10:29 am
@潘 试了几个效果都不是太好,我现在的做法是尽量把代码划分的粒度小一些然后放在不同的文件里,不知道潘兄是怎样做,愿闻其详 :)
另外,这个keynote里的图片不错,图片里的小动物叫啥?呵呵
潘 发表于2011年06月02日 10:49 am
@blankyao 拆分粒度是一种不错的做法。我们目前项目代码量还不是很大,规范好命名空间就可以了,所以不能方便地查看代码结构也没什么大问题。
keynote里面的外星人是电影《Lifed》中的主角,电影内容非常契合我对vim的理解,所以用来作配图。推荐去看一看,相关介绍见http://en.wikipedia.org/wiki/Lifted_(2006_film)。
blankyao 发表于2011年06月05日 12:49 am
@潘 多谢 :)
ppip 发表于2011年06月13日 9:28 am
很复杂~~~
zhiyelee 发表于2011年06月14日 9:03 pm
看来我一定要下定决定攻克vim了,用了一段时间,感觉比较吃力,看来是还没打通任督二脉~~
稻香 发表于2011年06月29日 11:38 pm
用vim的时候,配合zen codeing插件速度会更快!!