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

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

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

评论

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

#1 楼

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

当然,VimL很麻烦,它缺少许多很酷的功能,但至少,更容易携带一些东西。

当我需要与提供python绑定的外部API交互时,VimL中不存在的1%。当您使用诸如:substitute之类的命令进行播放时,可以交互使用有关VimL的信息。大多数映射或宏也不需要python。

评论


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

– Karl YngveLervåg
15年11月26日在10:21

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

–卢克·赫米特(Luc Hermitte)
15年11月26日在12:34

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

–霍布斯
15年11月27日在4:51

#2 楼

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

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


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

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

最后,使用另一种语言并不能完全使您免受Vimscript的怪癖影响。您仍然需要学习如何在Vimscript中做大多数事情–使用另一种语言,只是使您可以比其他情况更整齐地包装



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

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