🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
在前四十来章中,我们讲解了许多基础方面的内容。 在本书的最后部分,我们将尝试从零开始为一门语言创造Vim插件。 这不是个适合懦夫的游戏。这将需要你竭尽全力。 如果你现在就想退出,那确实也不坏!你已经学到了如何在`~/.vimrc`里改善你的生活, 还有如果修复别人的插件里的bugs。 有"这就够了,我不想虚掷光阴于创造一个我将不会使用的插件"这种想法并不可耻。 现实一点。如果你不想创造一个自己想用的插件,现在就可以离开,到你想要的时候再回来吧。 如果你_真的_想要继续,确保你可以挤出一些时间。本书剩余部分将会显得困难, 而且我会假定你真的想_学点东西_,而不是仅仅慵懒地一章章翻过去。 ## Potion 我们创造的插件将为[Potion](http://fogus.github.com/potion/index.html)这门语言提供支持。 Potion是由`Why the lucky stiff`在隐于江湖之前(before his disappearance)创建的一门玩具语言。 它非常的简单,所以我们就拿它一试身手。 Potion跟[Io](http://iolanguage.com/)很像,同时又借鉴了Ruby,Lua以及其他语言。如果你未曾玩过Io,它可能看上去略古怪。 我强烈推荐你花上至少一两个小时的时间玩玩Potion。在现实生活中你不会用它, 但是它可能会改变你思考的方式并带给你新的思想。 Potion的当前实现相当地粗糙。举个例子:如果你犯了语法错误,它通常会还你段错误。 不要太纠结于此。我会给你许多可用的代码示范,这样你就能更关注于Vimscript本身而非Potion。 我们的目标不是学习Potion(尽管那也挺有趣)。 我们的目标是以Potion作为一个小例子来体验写一个完整的Vim插件的方方面面。 ## 练习 下载并安装[Potion](http://fogus.github.com/potion/index.html)。这个就要你自己动手了。它应该会比较简单的。 确保你可以在Potion解释器和以`.pn`文件的形式运行小册子里的第一个示例代码。 如果解释器貌似不能工作,看[这个issue](https://github.com/fogus/potion/issues/12)来查找可能的原因。