将 vim 命令映射到编译时功能

将 vim 命令映射到编译时功能

Vim 有以下概念特征即基于编译时标志的实际安装中可能支持或不支持的功能子集。可以使用函数检查功能是否存在has(),可以使用命令枚举所有可能的功能feature-list

我希望我的 vim 脚本在使用之前先检查功能,从而使其更加强大。我的问题是,没有明确记录哪个命令依赖于哪个功能。

具体示例:某些 Linux 发行版vim.tiny默认附带的是功能严重受限的版本vim。如果我启动vim.tiny,它.vimrc会吐出大量错误消息。例如,let命令不可用,但不清楚哪个功能提供了此命令。我如何才能可靠地确定它?或者,如果不可能,我该如何让我的 vim 启动优雅地降级vim.tiny

答案1

针对 Vim 插件vim-tiny很难,因为它由一个非常功能集有限。它旨在作为,仅支持一些映射,仅此而已。

话虽如此,使用has()和确实可以检测和断言某些功能。可以通过包装 来防止exists()上的错误,但正如我所说,最好以“正常”功能的 Vim 为目标,并添加对新内容可用性的检查(例如:let:if 1隐藏,持久撤消,在 Vim 7.3 中引入)和基本错误修复(但仅在您需要它们时)。

相关内容