Potion段移动

最后更新于:2022-04-01 21:05:58

既然知道了段移动的工作原理,让我们重新映射这些命令来使得它们对于Potion文件起作用。 首先我们要决定Potion文件中"段"的意义。 有两对段移动命令,所以我们可以总结出两套组合,我们的用户可以选择自己喜欢的一个。 让我们使用下面两个组合来决定哪里是Potion中的段: 1. 任何在空行之后的,第一个字符为非空字符的行,以及文件首行。 2. 任何第一个字符为非空字符,包括一个等于号,并以冒号结尾的行。 稍微拓展我们的`factorial.pn`例子,这就是那些规则当作段头的地方: ~~~ # factorial.pn 1 # Print some factorials, just for fun. factorial = (n): 1 2 total = 1 n to 1 (i): total *= i. total. print_line = (): 1 2 "-=-=-=-=-=-=-=-\n" print. print_factorial = (i): 1 2 i string print '! is: ' print factorial (i) string print "\n" print. "Here are some factorials:\n\n" print 1 print_line () 1 10 times (i): print_factorial (i). print_line () ~~~ 我们的第一个定义更加自由。它定义一个段为一个"顶级的文本块"。 第二个定义则严格一点。它定义一个段为一个函数定义。 ## 自定义映射 在你的插件的repo中创建`ftplugin/potion/sections.vim`。 这将是我们放置段移动代码的地方。记得一旦一个缓冲区的`filetype`设置为`potion`,这里的代码就会执行。 我们将重新映射全部四个段移动命令,所以继续并创建一个骨架: ~~~ noremap ';