创建vim插件应遵循什么步骤?


11

所以我的问题很简单。学习vim脚本只是为了创建vim是一个好主意,还是我们应该采用其他一些更被接受的语言。

例如,链接打开一个YouTube视频,其中显示了如何使用Python创建vim插件。

除非有人打算创建一些vim插件,否则Vim脚本并不完全有用。那么,除非仅使用vim脚本,否则还有什么事情是做不完的吗?


2
请注意,许多人使用vimscript来(非常彻底地)配置他们的Vim,而无需创建或分发任何插件。
VanLaser

Answers:


12

我的插件在VimL中占99%。原因是VimL在安装vim的位置可用。与其他语言相比,它要复杂得多-例如,很少有我在使用Vim的窗口上安装Python。

当然,VimL很麻烦,它缺少许多很酷的功能,但是至少,便携式产品更容易。

当我需要与提供python绑定的外部API交互时,VimL中的1%不在。

顺便说一句,当您使用诸如之类的命令时,几乎可以学到关于VimL的所有知识:substitute。大多数映射或宏也不需要python。


1
实际上,我发现VimL并不那么麻烦。当然,我同意它缺乏像python这样的高级语言的出色功能,但是在使用了一段时间之后,我发现VimL非常令人愉快。我认为VimL的声誉比所需的要差。
Karl YngveLervåg,2015年

好。我必须承认,自vim5.x(我开始使用它)以来,已经取得了许多进步。但是,在某些极端情况下,我们必须要做复杂的事情。例如map(),请参阅期望使用字符串或(不相关的):map。我经常不得不使用/围绕字符串评估来结束工作,例如生成映射或处理函数调用列表,...
Luc Hermitte 2015年

用另一种语言编写vim插件并不能使您摆脱学习VimL的麻烦,因为绑定到python / ruby​​ / etc。的功能非常有限,exec无论如何,您不可避免地要获得VimL片段。它使您可以使用可能会更有效地工作的语言编写核心逻辑,但是您仍然非常需要学习VimL。
hobbs 2015年

12

如果您打算编写插件,则一定要阅读Steve Losh撰写的漂亮文章“ Wiming Vim Plugins”;不仅用于决定是否坚持使用VimL,还用于最佳实践建议。

它还包含有关使用其他语言编写Vim脚本的简短讨论:

首先,使用另一种语言要求您插件的用户使用支持该版本的Vim编译版本。在当今时代,这通常不是问题,但是如果您希望您的插件在任何地方运行,则不是一个选择。

使用另一种语言会增加开销。您不仅需要学习Vimscript,还需要学习Vim与语言之间的接口。对于小型插件,这会给项目增加比其节省的复杂性,但是对于大型插件,它可以自己付出代价。由您决定是否值得。

最后,使用另一种语言并不能使您与Vimscript的怪癖完全隔离。您仍然需要学习如何在Vimscript中执行大多数操作-使用其他语言可以使您大部分内容比其他方式更整洁地包装起来。

我的经验是,即使使用非VimL插件效果更好,我最终还是会由于便携性而最终切换到纯VimL替代方案。Vim几乎可以在任何系统上运行(甚至是丑陋的和旧的旧系统),并且设置依赖项或临时禁用该插件的开销不值得(尤其是如果您忘记忘记禁用它并尝试使用其映射/命令)。 。

即使更容易设置依赖项,您也可能会遇到一些问题(例如:某些基于python的插件来自虚拟机上的共享文件夹时,它们不能100%起作用)。这就是为什么我编写的几个插件仅使用VimL的原因。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.