接下来呢?

如果你已经读到这了,并且完成了所有的例子和练习,那肯定已经非常牢固地掌握了基本的 Vimscript。 不过不用着急,还有大量的的内容可以学习!

如果还渴望更多内容,这里还有几个有意思的话题供你学习。

配色方案

在本书中,我们为 Potion 文件添加过了语法高亮。 而另一方面,是创造自定义配色方案,它定义了每个语法元素应该显示什么颜色。

Vim 的配色方案制作起来非常得简单直接,但有点重复。 阅读 :help highlight 来学习基本要素。 你可能想看看一些内置的配色方案是如何组织文件的。

如果你准备好接受挑战,那可以看下我的 Bad Wolf 配色方案的源码, 看看我是如何利用 Vimscript 使得定义和维护更轻松的。 留意“palette”中的字典和 HL 函数,它会动态构建 highlight 命令。

command 命令

很多插件允许用户通过按键映射和方法调用来进行交互,但有些则更喜欢创建额外命令作为替代。 例如,Fugitive 插件创建了像 :Gbrowse:Gdiff 这样的命令,并交给用户来决定如何调用。

这样的命令通过 :command 命令创建。阅读 :help user-commands 来学习如何创建属于自己的命令。 你现在应该已经非常熟悉 Vimscript 了,要学习新命令,阅读 Vim 的文档应该就够了。

运行时路径

本书中,在讲“只用 Pathogen”的时候,我稍微讲到过些 Vim 是如何决定需要载入些什么文件的。 由于你已经了解了很多 Vimscript 知识,那就可以通过阅读 :help runtimepath 和查看 Pathogen 的源码 来弄清楚在底层到底发生了什么。

omnicomplete

Vim 提供了很多不同的方式来补全文本(阅读 :help ins-completion 来了解大概)。 大多数都很简单,但是最强大的是“omnicomplete”,它能让你调用一个自定义的 Vimscript 函数, 并通过任何你能想到的方式来检查补全。

当你准备好去深入了解 omnicomplete 时,可以先从 :help omnifunc:help compl-omni 开始, 并沿着思路一直下去。

编译器支持

在我们的 Potion 插件中,我们创建了一些映射来编译并运行 Potion 文件。 Vim 提供了很多更深层次与编译器交互的支持,包括解析编译错误和提供一个清晰的列表供你跳转到每个错误的行中。

如果你对这个感兴趣,你可以去通读 :help quickfix.txt 并专研。 然而,我要先警告你,errorformat适合心生畏惧的人!

其他语言

这本书只关注于 Vimscript,但 Vim 也提供其他几种语言的接口,例如 Python、Ruby、以及 Lua。 这意味着,如果你不喜欢 Vimscript,那可以用一个不同的语言来为 Vim 编写脚本。

但了解 Vimscript 仍然有助于你编辑自己的 ~/.vimrc,以及理解 Vim 为每个语言提供的 API。 使用替代语言是一个逃避 Vimscript 糟粕的不错方式,尤其对于一个大型插件来说。

如果你想学习更多某个特定语言在 Vim 中的脚本,就查看它的帮助文档:

Vim 的文档

作为最后一个告别的笔记,下面是一个 Vim 帮助主题的列表, 都是非常有用的、有益的、有趣的、或者只是单纯的函数(排序不分先后):

练习

去写一个你一直想写的 Vim 插件,并且分享给全世界吧!

原文地址:http://learnvimscriptthehardway.stevelosh.com/chapters/56.html