为什么要学 vim

March 20, 2015

可怕的 vim (缺点)

  • vim 学习门槛高
    • 操作奇怪
    • 不能用鼠标
  • 功能弱
    • 不配置不折腾的话,什么功能都没有,就是一个普通的编辑器
    • 不能管理项目
    • 没有代码高亮
    • 没有代码提示
    • ……
    • 什么都没有

如此来说, vim 没有任何优势…可是业内有一句话: 世界上只有三种编辑器 vim, Emacs, 其他

vim 的优点

为何会这样呢? 我们来看看 vim 的优点: * 运指如飞 * 所思即所得 可以这样说, 用 vim 和用 IDE 什么的,完全是两个感觉.

用 IDE 就像用一双筷子,夹住一把勺子,然后去舀菜吃. 别扭不? 想想都别扭.

用 vim 就像用手直接去抓菜吃,那个淋漓畅快.

为什么这样说呢? * vim 使用的是肉体记忆 * 其他使用的是技巧记忆

肉体记忆是反射性的,相当于给你增加了一个绘图的 GPU,不会中断和占用你的 CPU

而技巧记忆必须中断 CPU, 切换 CPU 去做其他事情,然后再切换回来.

比如我要将文本中一行代码剪切到最顶端.

  • vim: ddggp敲下这几个字母你就实现了这个功能了
  • 其他党: 把手从键盘上拿下来,抓住鼠标,颤抖的小心翼翼的拖拉着光标选中对应的文本,千万要小心,不要少选中任何一个字符. 按下右键, 在弹出的一堆菜单中仔细的找到 剪切 小心翼翼的选中 剪切 ,然后拼命的滚动滚轮,直到滚不动以后,仔细查看是否滚最上面了,有没有少滚一点,然后把颤抖的光标移动到最上面那一行的顶端.接着按下右键,在弹出的密密麻麻的菜单中,仔细的找到 粘贴 这两个字.

可怜的其他党,做完这些以后,你还能想得起来复制到最上面是干什么么?

嗯,没错你花了2分钟,还是能想得起来,可能就是复制上去测试一下. 然后不行还是得改回去.

  • vim: uu就改回去了
  • 其他党: 好累,就是把上面的操作反向再重复一次.我都懒得写了.难点是要找到该插回代码的哪里?别插错了.不能用 ctrl+z 哦.纯粹的其他党不应该使用热键的.

中断对我们的工作效率影响是非常巨大的,可以参见 碎片化对我们脑力智力的摧残

不要说上面这种不人性的操作了,即使是将手从键盘上拿下来,也是影响非常大的.

所以一个优秀的 vim 程序员,操作编辑文本的能力和效率可能只是其他党的4-5倍.

但是考虑到持续思考不中断编辑的产出, vim 程序员的工作效率甚至能达到其他党的10-20倍.

vim 甚至能让你思维方式和看待事物的发生不一样的改变. 所以身为一个程序员, 不使用一个真正的编辑器,那是不称职的.

vi的历史

vi 由 Bill Joy 于1976年发表, 已经有接近 40 年的历史.目前是 UNIX 规范的一部分, 只要是 UNIX 的衍生类操作系统, 里面一定能使用 vi.

vi/vim 是一款能够一辈子使用下去的工具,永远不会过时,而且你永远可以持续性的学习技巧,持续性的提高自己的生产效率. 是不变应万变的神器

然后IDE呢? 这几年流行过的 IDE 数不胜数 jbuilder, Netbeans, IntelliJ, Eclipse, webstorm, Sublime 还有 jetbrains 出品的各种IDE. 可能我孤陋寡闻了,还有很多优秀的 IDE 没列出来, 没错 IDE 是很好用, 以后可能还有更好用的 IDE 出来, 你就慢慢的没有积累的学下去吧.

如何学习 vim

  • 打开一个 vim 编辑器,输入:help
  • 部门有一本书
  • 网络上有很多简单的入门技巧

你随时可以开始学习, 但是学习的过程, 怎么说呢?并不是那么让人愉快的, 更类似学习一款新的输入法. 你会痛苦纠结彷徨, 但是坚持过来了,形成肉体记忆了,就都好了.

你要抱着一种思路: 不求完美,但求使用

只要学到基础的东西,坚持的用下去,每次遇到不会的操作, 停下手头工作, 都去查出来,记下来.

vim 有两种(其实是三种)模式: * 移动 esc * 插入 i * 虚拟 v(可以不用管)

基本能力

  • 移动模式: h(左)j(下)k(上)l(右) 一定要最先的记死用熟
  • 插入模式: 你可以输入想要输入的东西,没什么可以说的
  • 保存文件: :w然后回车
  • 复制内容: v 进入虚拟模式, hjkl 移动复制, 然后按下 y
  • 粘贴内容: p
  • ….

自己慢慢学,其实入门也很简单,只是形成肉体记忆比较难. 我现在熟悉的 vim 命令也很少,就是常用那几个,因为编码工作不够多吧.


comments powered by Disqus