我怎么知道我的vim的补丁版本?


17

我已经安装了vim 7.4,但是我不确定安装它时的补丁程序级别。我该如何检查?

vim --version

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 15 2014 16:18:44)
....

但是它没有提供补丁程序级别或次要版本号。

Answers:


25

您似乎只是拥有未修补的vim版本,否则:version命令或--version参数将在第二行列出修补程序。例如在我的机器上说:

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Sep 10 2014 09:36:33)
Included patches: 1-207, 209-355, 357-430

这是“补丁程序级别” 430,但是它跳过补丁程序208和356。

Vim没有超出major.minor的“次要版本号” ;尽管我相信某些发行版可能会使用“补丁程序级别”。


如上所示,并非所有补丁都包括在内,因此,如果您要使用此值,则不能只检查数字是否高于某个特定版本。

通常,最好的方法是使用has("patch-7.4-399");如果满足以下条件,则返回true:

  • 我们正在运行包含补丁399的Vim 7.4。
  • 我们正在运行Vim 7.5或更高版本。

您还可以使用的形式has('patch399'),通常使用如下形式:

if v:version == 704 && has('patch399')

但是要注意;对于Vim 7.5 这将是错误的;仅在非常特殊的情况下使用此功能。

请参阅参考资料:help feature-list


除了重定向:version和解析外,我找不到列出所有包含的补丁的方法。我也不确定这怎么会有用,has()应该足够了:-)


2
has("patch-7.4-399")还是has("patch-7.4.399")?(后者是通过一些代码完成向我建议的,并且似乎也是您提供的链接中所实际描述的内容
akavel

2
@akavel他们都工作。您甚至可以使用patch-7-4-399;-)
Martin Tournoij 2015年

啊,awsum,然后:)
akavel

3
patch-7.4.399格式仅在之后可用7.4.237。请参阅:h has-patch
2016年

1
↑@blueyed指的是一键has('patch-7.4-399')检查major.minor和补丁版本的全部功能(不v:version使用):与使用-破折号或.点无关。
亚伦·托马
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.