所以我的问题很简单。学习vim脚本只是为了创建vim是一个好主意,还是我们应该采用其他一些更被接受的语言。
例如,此链接打开一个YouTube视频,其中显示了如何使用Python创建vim插件。
除非有人打算创建一些vim插件,否则Vim脚本并不完全有用。那么,除非仅使用vim脚本,否则还有什么事情是做不完的吗?
所以我的问题很简单。学习vim脚本只是为了创建vim是一个好主意,还是我们应该采用其他一些更被接受的语言。
例如,此链接打开一个YouTube视频,其中显示了如何使用Python创建vim插件。
除非有人打算创建一些vim插件,否则Vim脚本并不完全有用。那么,除非仅使用vim脚本,否则还有什么事情是做不完的吗?
Answers:
我的插件在VimL中占99%。原因是VimL在安装vim的位置可用。与其他语言相比,它要复杂得多-例如,很少有我在使用Vim的窗口上安装Python。
当然,VimL很麻烦,它缺少许多很酷的功能,但是至少,便携式产品更容易。
当我需要与提供python绑定的外部API交互时,VimL中的1%不在。
顺便说一句,当您使用诸如之类的命令时,几乎可以学到关于VimL的所有知识:substitute
。大多数映射或宏也不需要python。
map()
,请参阅期望使用字符串或(不相关的):map
。我经常不得不使用/围绕字符串评估来结束工作,例如生成映射或处理函数调用列表,...
exec
无论如何,您不可避免地要获得VimL片段。它使您可以使用可能会更有效地工作的语言编写核心逻辑,但是您仍然非常需要学习VimL。
如果您打算编写插件,则一定要阅读Steve Losh撰写的漂亮文章“ Wiming Vim Plugins”;不仅用于决定是否坚持使用VimL,还用于最佳实践建议。
它还包含有关使用其他语言编写Vim脚本的简短讨论:
首先,使用另一种语言要求您插件的用户使用支持该版本的Vim编译版本。在当今时代,这通常不是问题,但是如果您希望您的插件在任何地方运行,则不是一个选择。
使用另一种语言会增加开销。您不仅需要学习Vimscript,还需要学习Vim与语言之间的接口。对于小型插件,这会给项目增加比其节省的复杂性,但是对于大型插件,它可以自己付出代价。由您决定是否值得。
最后,使用另一种语言并不能使您与Vimscript的怪癖完全隔离。您仍然需要学习如何在Vimscript中执行大多数操作-使用其他语言可以使您大部分内容比其他方式更整洁地包装起来。
我的经验是,即使使用非VimL插件效果更好,我最终还是会由于便携性而最终切换到纯VimL替代方案。Vim几乎可以在任何系统上运行(甚至是丑陋的和旧的旧系统),并且设置依赖项或临时禁用该插件的开销不值得(尤其是如果您忘记忘记禁用它并尝试使用其映射/命令)。 。
即使更容易设置依赖项,您也可能会遇到一些问题(例如:某些基于python的插件来自虚拟机上的共享文件夹时,它们不能100%起作用)。这就是为什么我编写的几个插件仅使用VimL的原因。