我们先创建一个Potion文件用来实验我们的插件。创建一个factorial.pn文件,然后把下面的Potion代码写进去:
factorial = (n):
total = 1
n to 1 (i):
total *= i.
total.
10 times (i):
i string print
'! is: ' print
factorial (i) string print
"\n" print.
这段代码创建了一个简单的factorial函数,然后调用它10次,然后每次调用都输出对应的结果。用potion factorial.pn命令来运行它。输出的结果应该和下面相似:
0! is: 0
1! is: 1
2! is: 2
3! is: 6
4! is: 24
5! is: 120
6! is: 720
7! is: 5040
8! is: 40320
9! is: 362880
如果你没有看到这样的输出,或者是有错误的话,先找出问题所在。这段代码应该是正确的。
花点时间来理解一下这些代码是怎么工作的。你随时都可以参考参考Potion。这不仅仅是对理解Vimscript代码有用,并且可以让你成为一个更好的程序员。
打开factorial.pn文件,运行下面的命令:
:set filetype?
Vim会输出filetype=,因为它现在还不知道.pn文件的类型。让我们来给它加上类型的判断。
在你的插件目录下添加ftdetect/potion.vim。添加下面的代码:
au BufNewFile,BufRead *.pn set filetype=potion
这里创建了一个简单的autocmd:这个命令设置.pn文件的类型为potion。还是比较简单的。
注意这里我们没有像之前一样用autocmmand group,这是因为vim会自动把ftdetect/*.vim文件的内容用autocommand group来进行包装,所以你不用担心这个了。
关闭factorial.pn文件,再次打开它。现在运行之前的命令:
:set filetype?
这次Vim会输出filetype=potion。当Vim启动的时候,它会加载~/.vim/bundle/potion.vim里的autocommand group,当打开factorial.pn文件的时候,这个命令就会执行,然后文件的filetype就被设置成potion。
现在,我们已经让Vim能够识别Potion文件的类型了,我们可以继续来给我们的插件添加一些更加有用的功能了。