Vim 求生手册

[TOC]

VIM 是从 vi 发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器。

—— 维基百科

很多接触 VIM 的程序员应该都有过这样的经历:

  1. 受某大 V 的影响看到了 VIM 的高逼格;
  2. 看了某篇学习的文章,自己试了几个命令,在 30 分钟内放弃;
  3. 几个月后、几年后又听到有人在鼓吹 VIM 好用;
  4. 循环。。。
  5. 忍不了了,花了 2 周时间记各种命令;
  6. 算了,我还是滚回我的 Sublime 吧。

我为什么知道这种情况?因为我也一遍有一遍的尝试想把 VIM 作为我的主力编辑器,每一次都是伤痕累累的滚回 Sublime 了。分析这里面的原因其实只有一个:我太想用它来装 X 了,太想感受那种轻飘飘的虚荣感觉,还没有认识到“世界上有 3 类程序员:用 VIM 的程序员,用 Emacs 的程序员,用其他编辑器的程序员” 这句话并不是装出来的,VIM 真的可以大幅提高工作效率。

如果一个工具真的可以在以后长时间内大幅提高效率,那么花一小点时间,慢慢的使用、进阶绝对是个划得来的生意。而且,有时候我们不得不在生产环境中直接面对 Vim, 这种时候通常是紧急的情况(服务器发生故障等),如果对 VIM 不熟悉,那只能是两眼一抹黑了。

大部分人放弃 VIM 可能都是出于这样的原因:期望过高,追求速成。而本文的目的只在于善意的提醒你:慢一点,别放弃。

生存下来

追求速成的同学在初次接触 VIM 时通常活不过 30 分钟,太不友好了!!!那为什么 VIM 可以提高工作效率?它的设计初衷就可以让你的手指不离开键盘进行所有的操作。

活下来需要注意的事情很简单,认清 VIM,使用最简单的指令,就跟我们学吉他一样,先看看买的琴,弄清楚 Do Rei Mi 在哪个地方可以演奏出来就可以了,通常来说我们要流畅的弹出 1 2 3 4 5 6 7 i 需要一段时间,但是第一次弹奏出来以后会很开心。这个时候并不需要了解什么是把位,怎么切换把位。

通过 vim filename 进入 VIM 以后,不能编辑文本,这时候 VIM 在 Normal 模式下。正如一些笔记软件默认是不开放编辑的,只有点了编辑按钮才能输入,而像 Sublime 这样的编辑器,你只要打开了某个文件,随时都可以输入。这样当然提供了便利性,但是很容易造成误操作,改变文件内容和状态。

在 Normal 模式下,学会以下内容就入门了:

基本上以上操作足以让我们完成很多的操作内容,现阶段需要做的是将这些指令训练成肌肉记忆,可以每天刻意用 VIM 来写日记,编辑一些文档,或者训练不用自动补全和提示写代码的能力。

稍微熟练以后将光标键换成 hjkl 进行移动,这样更符合手放在键盘上的位置,如果不记得哪个键是做什么用的,输入 :help 键名 寻求帮助。养成一个习惯,insert 模式下编辑完,只要有可能做其他事情,有事没事按按 Esc 退回 Normal 模式来保证数据的安全。如果有必要,借助鼠标操作。

快速定位阶段

在生存阶段的命令没有到肌肉记忆的程度时,尽量不要逼自己学习过多的命令,欲速则不达,好东西都需要慢慢享受。VIM 在 Normal 模式下,所有键都会变成命令执行对应的指令。

光标的快速移动

多种插入形式

之前我们说过 i 可以切换到 insert 模式,实际上还有其他键也可以:

文件操作

除了 :wq 还有其他操作:

快速回撤前进

熟练阶段

到目前为止,主流编辑器的基本功能 VIM 通过键盘基本上都实现了,对于块级操作,命令存在天然的劣势,毕竟鼠标长按一下可以选择太多的区域,VIM 的块级操作同样不复杂:

命令 v 和 V 表示可视选择,如果我们需要对一段代码左右缩进:

在 insert 模式下,可以使用 ctrl + p 自动补全。

分割布局

封神阶段

用 VIM 打造 IDE

宏录制

这个阶段我直接放弃了。不行了,白头发出来了。

可自行搜索。。。

总结

学习资料

回帖
请输入回帖内容 ...