既然我们知道了区块移动是如何工作的,那我们现在就可以把这些命令映射成可以在Portion文件里工作的方式了。
首先我们需要确定Potion文件里的“区块”是什么。因为我们有两组可以使用的区块移动命令,所以我们可以使用两组“模式”,这样我们的用户就可以选择使用他们自己喜欢的。
我们使用下面两种模式来定义Portion区块的开始:
现在使用简单扩展后的factorial.pn
的文件,下面是我们的规则中会作为区块头的样子:
我们的第一条规则定义的比较自由。它直接把一个“顶级的文本块”定义成一个区块。
第二个定义就比较严格一点了。它把一个区块定义为一个函数定义。
自定义映射
在插件的代码库里创建一个ftplugin/option/sections.vim
文件。这里我们将会放入区块移动相关的代码。记住,只要缓冲区的filetype
是potion
,这里的代码就会执行。
我们要重新映射全部的4个命令,所以我们先创建一个大致的“框架性”文件:
noremap