Vimscript编程指南

接下来干什么?

如果你阅读到这里了,并且完成了所有的示例和练习,你现在应该对Vimscript的基础知识有了很好的了解。别担心,还有很多东西需要学习!

颜色主题

在这本书里,我们给Potion文件加上了语法高亮。另外一个方面是定义自己的颜色主题,对于不同的元素定义不同的颜色。

颜色主题在Vim里如果要实现的话,还是是比较简单的,有点重复的。阅读:help highlight来学习一些基础内容。你可以看看一些内置的颜色主题,看看它们的文件结构是如何组织的。

如果你想挑战的话,你可以看看我自己的Bad Wolf的颜色主题,看看我是怎么使用Vimscript来让定义更加易于我自己进行维护的。注意里面的palette词典以及里面动态生成highlight命令的的HL函数。

Command命令

很多插件运行用户通过按键映射以及函数调用来进行交换,但是也有些喜欢创建Ex命令。例如,Fugitive插件创建类似:Gbrowse以及:Gdiff并且让用户来决定调用哪个。

类似这样的命令都是通过:comman命令创建的。阅读:help user-commands来学习如何创建你自己的命令。你现在已经了解了足够多的关于Vimscript的只是,阅读Vim的文档已经可以让你自己学习新的命令了。

运行时路径

在这本书里面,我对于Vim是如何决定加载那个文件只是简单地说了“使用Pathogen来管理”。现在你已经对Vimscript比较了解了,你可以阅读:help runtimepath,同时阅读Pathogen的源码来了解究竟是如何实现的。

全方位补全

Vim提供了多种不同的补全文本的方式(阅读:help ins-completion来进行了解)。大部分都是很简单地,其中最强大的是全方位补全,它可以让你调用一个自定义的Vimscript函数,来实现所有你想要进行补全的方法来进行补全。

如果你准备好了,要深入了解全方位补全这个兔子洞的内容的花,你可以开始阅读:help ominifunc以及:help coml-omni的内容,然后沿着里面的小路跟进去。

编译器支持

在我们的Potion插件里,我们创建了一些映射来编译和运行我们的Potion代码。Vim对于和编译器交互提供了更加深入的支持,包含解析编译错误,还提供了一个很好的能让你跳转到具体错误行的列表。

如果你对这个很感兴趣,你可以通过阅读:help quickfix.txt来深入了解。不过,我会警告你,你脆弱的心脏可能受不了errorformat的折磨!

其他的语言

这本书主要是关于Vimscript的,但是Vim也提供了一些其他语言的借款,例如Python,Ruby,以及Lua。也就是说,如果你不喜欢Vimscript的话,你也可以是用其他的语言。

但是了解Vimscript对于编辑你的~/.vimrc文件是有帮助的,同时它也能帮助你理解Vim提供给其他语言的API。但是使用其他的语言,可以帮你摆脱一些Vimscript中让人讨厌的东西,特别是对于大型插件而言。

如果你想了解使用某个语言来操作Vim,你可以阅读它们的文档:

  • :help Python
  • :help Ruby
  • :help Lua
  • :help perl-using
  • :help MzScheme

Vim的文档

作为最后一部分内容,下面有一个Vim帮助的列表,这里有一些非常有帮助的,有很多有用信息的,有趣的或者仅供娱乐的(没有按照任何顺序排列):

  • :help various-motions
  • :help sign-support
  • :help virtualedit
  • :help map-alt-keys
  • :help error-messages
  • :help development
  • :help tips
  • :help 24.8
  • :help 24.9
  • :help usr_12.txt
  • :help usr_26.txt
  • :help usr_32.txt
  • :help usr_42.txt

练习

写一个你一直想做的插件,然后分享给整个世界!