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 中引入)和基本错误修复(但仅在您需要它们时)。