如何检查是否安装了 vim 8.1+ 版本

Dav*_*542 0 vim bash shell

我对 vim 脚本进行了以下尝试,以检查它是否已安装以及它的版本是否是最新的 (8+):

# Check if we have vim version 8.1+ installed
VIM_PATH=$(which vim)
VIM_VERSION=$(vim --version |grep '8.[123]')
if [ -z "$VIM_PATH" || -z "$VIM_VERSION" ]
then
   ...
fi
Run Code Online (Sandbox Code Playgroud)

以上是有效的脚本吗?获取版本并检查是否有更好的方法是什么

hob*_*bbs 5

由于vim --version不是机器可读的,我很想尝试

if vim --cmd 'if v:version >= 801 | q | else | cq | fi' ; then
    # vim at least 8.1
fi
Run Code Online (Sandbox Code Playgroud)

它使用一段 vim 脚本进行比较。--cmd在打开任何文件或运行之前运行命令.vimrc;该cq命令以错误状态q退出,并以成功状态退出(这是必要的,否则 vim 会想要编辑一个空白文件!)。|允许在一行中放置多个 vim 命令,就像;在 shell 中一样。