Vimscript编程指南

Potionq区块移动

既然我们知道了区块移动是如何工作的,那我们现在就可以把这些命令映射成可以在Portion文件里工作的方式了。

首先我们需要确定Potion文件里的“区块”是什么。因为我们有两组可以使用的区块移动命令,所以我们可以使用两组“模式”,这样我们的用户就可以选择使用他们自己喜欢的。

我们使用下面两种模式来定义Portion区块的开始:

    1. 所有后面跟着一个空行并且是以非空字符开始的行,或者是文件的第一行。
    1. 所有第一个字符非空,并且行内包含等号,且该行以冒号结尾。

现在使用简单扩展后的factorial.pn的文件,下面是我们的规则中会作为区块头的样子:

我们的第一条规则定义的比较自由。它直接把一个“顶级的文本块”定义成一个区块。

第二个定义就比较严格一点了。它把一个区块定义为一个函数定义。

自定义映射

在插件的代码库里创建一个ftplugin/option/sections.vim文件。这里我们将会放入区块移动相关的代码。记住,只要缓冲区的filetypepotion,这里的代码就会执行。

我们要重新映射全部的4个命令,所以我们先创建一个大致的“框架性”文件:


noremap