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

vim --version


礼物

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


但是它没有给出补丁级别或次要版本号。

#1 楼

您似乎只是拥有未修补的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。除了major.minor之外,没有“次要版本号”;尽管我相信某些发行版可能会这样使用“补丁程序级别”。


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

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


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

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

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


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

有关更多信息,请参见:help feature-list


我找不到列出所有包含的补丁的方法,其他而不是重定向:version并进行解析...我也不确定无论如何它都有用,因为has()应该足够了:-)

评论


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

–akavel
15年3月24日在9:49

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

–马丁·图尔诺伊(Martin Tournoij)
15年3月24日在9:50



啊,awsum,然后:)

–akavel
15年3月24日在12:12

patch-7.4.399格式仅在7.4.237之后可用。参见:h has-patch。

–蓝色
16年6月29日在19:32

↑@blueyed指的是整个has('patch-7.4-399')功能,只需一次即可检查major.minor和补丁版本(不使用v:version):与是否使用-破折号无关要么 。点。

–亚伦·托马
17-10-17在4:33