如何才能学好Vim?(完结)




如何才能学好 Vim?(完结)
球友们好,很久之前就想写 Vim 了,因为人类史上最好的文本编辑器就是 Vim,不赞同
的请自觉持有保留意见,哈哈哈。
(但一直拖到了现在,呜呜呜)
Better, Stronger, Faster.
用这三个单词来赞美 Vim,一点都不为过。只不过,Vim 的学习曲线相当的大,这是一个
连我都不得不承认的事实。就好像弹一把吉他,一开始学起来非常痛苦,简直想摔了它,
但学会后,就能感受到乐器的无限魅力,以及学妹崇拜的小眼神。
来吧,下定决心拥抱它,没有比它更好的文本编辑器了,非常地难学,但却不可思议地好
用。
Vim 对于每个服务端开发人员都不陌生,这可能是我们接触最多的 Linux 软件。所有类
Unix 的系统(Linux、Mac)都安装了 vim。当我们通过终端操作文本时,vim 或许是我们
唯一的选择。
然而,vim 的使用方式和我们所熟悉的可视化编辑器完全不同,它的的快捷键是如此奇
怪,不易上手。因此除非兴趣使然,我们很少会主动学习 vim。它的上限够高,下限也足
够低,只需要掌握最基本的操作:↑↓←→、i、、:wq,就可以覆盖大部分使用场景。那为
什么还需要再深入学习 vim 呢?
主要原因是:用较少的学习成本,换来较大的效率提升。Vim 常用的几个快捷键,可以在
手指不离开键盘热区的情况下快速定位光标或编辑内容,这些内容的学习成本并不高。如
果你开发运维的过程中和 vim 打交道的次数越来越多,掌握这些技巧可以极大的提升开
发效率。即使现在没有需求,也可以提前上手这个强大的工具。
01、初识 Vim
Vim 有着悠久的历史。80 年代末,布莱姆·米勒在一个开源的 vi(更早的一种计算机文本
编辑器,我记得有个读者的网名就叫这个)基础上开发了 Vim 1.0 版本。
1994 年,Vim 3.0 中加入了里程碑式的多窗口编辑模式。
1996 年,Vim 4.0 中加入了图形化界面的版本。
1998 年,Vim 5.0 中加入了语法高亮的功能。
。。。。。。
总之是,越来越强!最新的版本是 8.0,启动界面里会显示一句非常暖心的话——「Help
poor children in Uganda」,翻译过来就是「请帮助乌干达的可怜孩童」。这让我想起来
我最喜欢的一支乐队——Beyond 的一首歌《Amani》。
打开终端,键入「vim」,就可以进入启动界面了,如下图所示。
1661930324590-7a238b7f-54a5-4a67-beef-51f394c9c34c.png
Vim 有很多聪明的设计,所以很多其他工具也支持 Vim 模式,比如说 Visual Studio
Code。很牛掰的一点是,Vim 逃离了鼠标的“魔掌”,只通过键盘就可以肆意地操作文本。
键入 :help 就可以查看 Vim 的帮助文档,尽管文档是英文的,但这的确是最权威的 Vim 学
习资料了,听我一句劝,耐着性子读一读吧!
1661930324671-8e6d1d0b-ae30-42f0-acdb-f0b33c0e3b28.png
键入 :q 可以退出帮助文档。当然了,如果英文读起来确实痛苦了些,我还为你准备了在
线的中文翻译文档,看这里:
https://yianwillis.github.io/vimcdoc/doc/help.html
1661930324606-48db4e86-95dd-4a67-a65c-a5d6aced818f.png
02、实操 Vim
俗话说,“光说不练假把戏。”咱们直接上手来体验一把。键入 vim xxx 命令。如下图所
示。
1661930324545-86cee3ad-68f8-4029-a412-a74c0f1ee20c.png
随后敲回车键,就进入 xxx 文件的阅读模式了。如下图所示。
1661930324687-f2fec675-f494-4c15-bda1-f444f73845ee.png
在阅读模式下,你需要尝试下面这些命令。
• 上下左右移动:对应上下左右键
• 按照词移动:w(下一个词),b(单词的第一个字母),e(单词的最后一个字
母),不适合中文
• 按照行移动:0(第一行),$(行尾),:+行数直接跳转到指定的行(此处的+意味
着按下 : 后,再输入行数,比如 10)
• 按照屏幕移动:H(屏幕顶部),M(屏幕中间),L(屏幕底部)
• 翻页:不同的键盘有所不懂,比如说 Mac 的巧克力键盘,fn+↑ 键向上翻,fn+↓键向下
翻(此处的+意味着组合键)
• gg(移动到文件开头),G(移动到文件末尾)
• /+关键词(此处的+意味着按下反斜杠后,再输入关键词)进行搜索,n/N 用于向下
或者向上匹配
除此之外,阅读模式下,你还可以:
• 键入 i 进入插入模式,此时会在窗口底部出现 – INSERT – 的字样。
1661930325774-68f92276-dae3-4540-8c42-08a1d735c122.png
在插入模式下按 esc 键退回到阅读模式。郑重其事的提醒:如果你不知道现在处于什么模
式,就狂按 esc 键。
除了 i 键可以进入插入模式,还有其他几个键可以进入插入模式,比如说 a 键可以在光标
后插入;o 键可以在当前行后插入;0 键可以在当前行前插入。
• 键入 dd 删除当前行,并把删除的行存到剪贴板里。
• 键入 x 删除当前光标所在的一个字符。
• 键入 p 可用于粘贴上一次复制的内容。
• 键入 yy 可以复制当前行的内容。
• 键入 u 可用于撤销当前操作。
• 键入 :w 可以保存当前修改后的内容。
• 键入 :q! 可以在不保存内容的情况下退出 Vim。
• 键入 :wq 可以在保存内容的情况下退出 Vim。
温馨提醒:如果你是在插入模式,想要退出或者保存内容的话,一定要先按 esc 键退出到
阅读模式。
好了,到此为止,你已经算是入门级的 Vim 用户了,真的,掌握了这些命令,其他编辑
器能干的事,你都可以通过 Vim 完成了。
03、进阶
孙悟空成为花果山水帘洞的大王之后,感到了空前的寂寞,他想要进阶,于是撑了一叶扁
舟拜师学艺去了。同样的,当我们熟练掌握了上述这些命令之后,也会感到空前的寂寞,
因为 Vim 的强大绝不止于此。
来看一下,Vim 是怎么重复自己的。
• 键入 . 可以重复上一次的命令。这意味着什么呢?意味着如果我们键入 dd 删除了一
行内容,如果我们还想删除一行的话,不需要再按下两次 d 键了,只需要按下一次 .
键就可以了。
• 键入 N+命令可以重复某个命令 N 次。(此处的+意味着按下次数后,再输入命
令)。这意味着什么呢?意味着生产力的大幅度提升啊!
比如说,在阅读模式下,键入 3dd 可以一次性删除 3 行内容;键入 10p 可以粘贴 10 次文
本。
来个带劲的哈。
通过 vim hello.txt 打开一个新的文本文件。然后键入 10+i+hello world+回车键+esc(此处
的+意味着按下次数后,再键入 i 键进入插入模式,再敲下 hello world,再按下回车键换
行,再按下 esc 键退出到阅读模式),奇妙的事情发生了,见下图。
1661930325473-f33cd494-c7b1-44b3-908e-0dd159862721.png
想一下,键入 10. 会发生什么?相信我,试玩之后,你会“哇”的。
妙,实在是妙。除此之外,你还可以键入:
• % 匹配括号来移动,包括 {[(,前提条件是你需要把光标移动到括号上。
• * 匹配单词来向下一个移动。(中文就无法使用了)
• # 匹配单词来向上一个移动。(同上)
记住光标的移动就可以脱离鼠标的束缚了。大多数命令都可以按照下面的方式来干:
光标开始的位置+命令+光标结束的位置
比如 0y$ 意味着:
• 0,光标移动到行首
• y,从这里开始复制
• $,直到行尾
如果你想看到光标选中了哪些文本,可以先按下 v 键进入可视化视图,然后再操作光标,
如下图所示。
1661930325482-bdd486e5-0047-4845-8169-2c34b98c1c85.png
更强大的操作,可以看看耗子叔翻译的一篇《简明 Vim 练级攻略》:
https://coolshell.cn/articles/5426.html
在阅读模式下,键入 :sp 可以横向分割窗口,键入 :vsp 可以竖向分割窗口,见下图。
1661930325639-79c13d41-d035-4237-affe-9a40d5c74d7b.png
舒服吧?原来一边编辑,一遍预览,在 Vim 下,只需要键入三四个字符!
04、其他工具 Vim 化
• Chrome:Vimium,通过类似 vim 风格的快捷键操作浏览器窗口
• VS Code:Vim 插件,将 VS Code 的编辑器转为 vim 模式
05、结语
如果你想在手头备一份 Vim 的帮助手册,免得在用 Vim 的时候四处搜索,实话告诉你,
我替你准备了,就是这么贴心。真的,花了 2 天的时间呢,整理了一份《Vim 中文用户手
册》,310 页,内容非常全面。
1661930326068-7f41e406-5ed4-47a0-8d4b-09a418fcee7c.png
这么优质的 PDF,怎么获取呢?星球的置顶链接里就有了!球友们可以直接获取。
最后,多说几句。作为程序员,我们大部分的时间都花费在摸鱼上,不不不,代码编辑器
上,因此,花点时间来掌握一个适合自己的编辑器还是非常值得的。很多大佬都直接使用
Vim 来作为代码编辑器,虽然我还没达到这种高逼格,但使用 Vim 来操作日志和配置文
件的频率还是非常高的。
要想熟练掌握 Vim,你需要这样做:
• 认真阅读这篇内容;
• 坚持使用 Vim 来完成所有的文本编辑工作,即使一开始会很痛苦;
• 随时查阅帮助文档,强化肌肉记忆;
• 两周时间的苦练后,你会发现,工作和学习效率有了大幅度的提升。
• 一个月过后,你跑过来感谢我,“二哥,你丫的,牛逼”!
附录 1:速查表
仅作为正文的补充,记录一些可能有用的快捷键。
光标移动
快捷键
^
+ ←, + →
:n
ngg
H
M
L
屏幕滚动
快捷键
向上 / 向下滚动一行
向上 / 向下滚动一页
向上 / 向下滚动半页
编辑
快捷键
ddp
J
Jx
其他
快捷键
:help
:help :{command}
^y$
ggyG
q: