介绍

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

官方网站:

每个人都应该有一套工具箱,其中包括各种各样的工具,就像家用的工具箱一样,其中有锤子、扳手、螺丝刀、钳子等等适用于不同场景的工具。 Vim 就是一个处理文本的强大工具。

特点

Vim 擅长处理文字,但是并不太适合做全功能的 IDE。

如果有大量的文本需要处理,例如日志、词库(五笔词库)之类的。 另外受限于环境,例如要连接远程 Linux 服务器,临时需要编辑配置文件之类的。

跨平台,支持 Windows、macOS、Linux 等等,基本上你要使用的平台都会有一个 Vi 或 Vim 的移植。学会了之后几乎可以在任何地方使用。

工作方式

文本处理

可以快速地操纵文本,将文本整体作为要处理的单元,而不是单个的文字。例如可以按词、按段落、按标记内的等等来选择文本。

正则表达式查找替换

可以说使用 Vim 很大一部分就是在使用正则表达式,你需要快速地将遇到的问题进行拆解,转换为你需要的正则表达式进行查找替换。

例如:

可以看到视频作者快速地用几条命令就可以将包含词组的输入法词库转换为纯单字词库。

处理匹配行

这里的处理是指删除、替换等等操作,就是在上一步正则表达式匹配的基础上,可以对符合要求的行作进一步的处理。

例如可以利用这个功能将所有不包含 Unity Tag 的 Android 日志行删除掉,这样可以快速地只看 Unity 相关的日志输出。

只需要用 Vim 打开文件后在普通模式下输入以下命令:

1
:v/Unity/d

这是一条很重要的思想:可以认为一行文本是一条数据,通过它可以快速地筛选数据。我认为这是 Vim 最强大的功能。

书籍介绍

想要系统地学习,只需要《Vim实用技巧》就够了。这本书为什么在同类书籍中脱颖而出,就是因为思路正确:并不讲解每个命令怎么用,而是讲解 Vim 的思想。

总体结构:

  1. Vim 解决问题的方式
  2. 模式
  3. 文件
  4. 更快地移动及跳转
  5. 寄存器
  6. 模式(查找)
  7. 工具

如果你再进一步查看详细的目录结构,会发现作者的安排是如此地合理,以正确的顺序安排了所有要学习的内容,在了解关键思想的前提下快速掌握各个功能。

书籍按照以上结构划分,可以说非常清晰地阐明了 Vim 的各个部分。而且语言言简意赅、通俗易懂,只用了 300 页就全讲完了。

学习方法

整本书的风格就是介绍每一步的操作以及对应的结果,通过对照练习,可以快速地掌握这些东西。Vim 操作不像其他知识只需要记住,而是需要的是融汇贯通、灵活掌握,因此核心就是练习。因此正确的学习方法就是:

  • 用一个架子将书架起来,放在电脑旁边
  • 下载书籍自带的例子
  • 使用 Vim 打开照着操作
  • 边做边思考,还可以做一些随意的尝试与组合

提示:不同平台有不同的 Vim GUI 客户端

  • Windows gVim
  • macOS MacVim

可以直接在 download : vim online 下载。

视频

视频建议用作进阶时使用,初学者不建议通过观看视频学习,讲得实在是太分散不成体系了。 而且 Vim 关键在于自己学会使用,而不是记住某些知识点,这个训练自己的过程是完全逃不掉的。 YouTube Bilibili 上搜索 Vim 可以找到很多相关的视频。

Vimcasts 是《Vim 实用技巧》作者建立的网站,可以学到很多实用技巧

讨论

扩展

如果你已经熟悉 Vim 了,那么你一定想要在 IDE 中使用 Vim 的操作方式,好在各大 IDE 都有对应的 Vim 扩展,自行在扩展中心搜索安装即可。

购买地址

下面是京东返利的链接,可以直达商品页面:

另外如果觉得把书平放在桌子上阅读太痛苦,也可以在淘宝上搜索“读书架”,购买后可以将书立着展开并固定住,特别适合需要边看边敲的书籍。

参考资料