可怕的 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 命令也很少,就是常用那几个,因为编码工作不够多吧.