Woher kenne ich die Patch-Version meines Vim?

17

Ich habe vim 7.4 installiert, bin mir aber nicht sicher, auf welchem ​​Patch-Level es sich befand, als ich es installierte. Wie überprüfe ich?

vim --version

Gibt

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

Es wird jedoch weder der Patch-Level noch eine Nebenversionsnummer angegeben.

Christopher Bottoms
quelle

Antworten:

25

Sie scheinen einfach eine ungepatchte Version von vim zu haben, sonst würde der :versionBefehl oder der --versionParameter 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-listfür einige weitere Informationen.


Ich kann keine Möglichkeit finden, alle enthaltenen Patches aufzulisten, außer das umzuleiten :versionund zu analysieren ... Ich bin mir auch nicht sicher, wie dies überhaupt nützlich sein würde, wie has()es ausreichen sollte :-)

Martin Tournoij
quelle
2
Ist es has("patch-7.4-399")oder has("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 )
akavel
2
@akavel Beide arbeiten. Sie könnten sogar verwenden patch-7-4-399;-)
Martin Tournoij
ahh, awsum, dann :)
akavel
3
Das patch-7.4.399Format ist erst nach verfügbar 7.4.237. Sehen :h has-patch.
Blueyed
1
↑ @blueyed bezieht sich auf die gesamte 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ückzugreifen v:version): unabhängig davon, ob -Bindestriche oder .Punkte verwendet werden.
Aaron Thoma