如何在 vim 版本中有条件地执行 .vimrc 中的 Plug xzy

问题描述 投票:0回答:1

我有这个

.vimrc
配置文件

$ cat ~/.vimrc
call plug#begin('~/.vim/plugged')
  Plug 'alvan/vim-closetag'

  " below only work with vim9
  Plug 'yegappan/lsp'
call plug#end()
$

这个

.vimrc
是vim8用户使用的,其他vim9用户也可以使用。

我怎样才能执行该行

Plug 'yegappan/lspl

仅在加载它的 vim 是 vim9 的情况下?

vim vim-plugin
1个回答
0
投票

一般来说,您不应该检查版本号,而应该检查功能。 事实上,在特定版本中添加了某些功能,使得该版本仅是次要属性。

这个案例也不例外。 引用 yegappan/lsp 的自述文件(强调我的):

此插件仅使用 Vim9 脚本编写。

:help +feature-list
相比,我们发现
+vim9script
功能正是我们正在寻找的。

您可以将

Plug
命令包装在条件语句中,如下所示:

call plug#begin('~/.vim/plugged')
    Plug 'alvan/vim-closetag'

    if has('vim9script')
        Plug 'yegappan/lsp'
    endif
call plug#end()

巧合的是,Vim 9 中添加了

+vim9script
功能,因此这也是检查 Vim 版本的一种方法,尽管这是另一种间接方式。
但实际上,这是我们感兴趣的功能。

© www.soinside.com 2019 - 2024. All rights reserved.