Sie scheinen einfach eine ungepatchte Version von vim zu haben, sonst würde der :version
Befehl oder der --version
Parameter die Patches in der zweiten Zeile auflisten. Zum Beispiel steht auf meiner Maschine:
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Sep 10 2014 09:36:33)
Included patches: 1-207, 209-355, 357-430
Dies ist "Patchlevel" 430, überspringt jedoch die Patches 208 und 356.
Vim hat keine "Nebenversionsnummer" nach major.minor . obwohl ich glaube, dass einige Distributionen das "Patchlevel" als solches verwenden können.
Wie oben gezeigt, sind möglicherweise nicht alle Patches enthalten. Wenn Sie diesen Wert verwenden möchten, können Sie nicht einfach überprüfen, ob eine Nummer höher als eine bestimmte Version ist.
Normalerweise ist der beste Weg zu verwenden has("patch-7.4-399")
; Dies wird true zurückgeben, wenn:
- Wir führen Vim 7.4 mit Patch 399 aus.
- Wir führen Vim 7.5 oder höher aus.
Sie können auch die Form von verwenden has('patch399')
, die normalerweise wie folgt verwendet wird:
if v:version == 704 && has('patch399')
Aber sei dir bewusst; dies wird für Vim 7.5 falsch sein ; Verwenden Sie dies nur in ganz bestimmten Fällen.
Sehen Sie :help feature-list
für einige weitere Informationen.
Ich kann keine Möglichkeit finden, alle enthaltenen Patches aufzulisten, außer das umzuleiten :version
und zu analysieren ... Ich bin mir auch nicht sicher, wie dies überhaupt nützlich sein würde, wie has()
es ausreichen sollte :-)
has("patch-7.4-399")
oderhas("patch-7.4.399")
? (Letzteres wurde mir durch eine Code-Vervollständigung vorgeschlagen und scheint auch das zu sein, was tatsächlich unter dem von Ihnen bereitgestellten Link beschrieben wurde )patch-7-4-399
;-)patch-7.4.399
Format ist erst nach verfügbar7.4.237
. Sehen:h has-patch
.has('patch-7.4-399')
Funktion, mit der sowohl die major.minor- als auch die Patch-Version auf einen Schlag überprüft werden können (ohne auf diese zurückzugreifenv:version
): unabhängig davon, ob-
Bindestriche oder.
Punkte verwendet werden.