Skąd mam poznać wersję łatki mojego vima?

17

Mam zainstalowany vim 7.4, ale nie jestem pewien, jaki był poziom łatek, kiedy go instalowałem. Jak mam sprawdzić?

vim --version

Daje

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

Ale nie podaje poziomu łaty lub pomniejszego numeru wersji.

Christopher Bottoms
źródło

Odpowiedzi:

25

Wygląda na to, że po prostu masz niepoprawną wersję vima, w przeciwnym razie :versionpolecenie lub --versionparametr wyświetlałoby łatki w drugim wierszu. Na przykład na moim komputerze jest napisane:

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

Jest to „patchlevel” 430, ale pomija łatki 208 i 356.

Vim nie ma „pomniejszego numeru wersji” poza wersją major.minor ; chociaż uważam, że niektóre dystrybucje mogą używać „poziomu poprawek” jako takiego.


Jak pokazano powyżej, nie wszystkie łatki mogą być dołączone, więc jeśli chcesz użyć tej wartości, nie możesz po prostu sprawdzić, czy liczba jest wyższa niż pewna wersja.

Zwykle najlepszym sposobem jest użycie has("patch-7.4-399"); zwróci to prawda, jeśli:

  • Używamy Vima 7.4 z poprawką 399.
  • Używamy Vima 7.5 lub nowszego.

Możesz także użyć formularza has('patch399'), który jest zwykle używany jak:

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

Ale bądźcie świadomi; będzie to fałsz dla Vima 7.5; używaj tego tylko w bardzo szczególnych przypadkach.

Zobacz :help feature-listwięcej informacji.


Nie mogę znaleźć sposobu, aby wyświetlić listę wszystkich zawartych łat, oprócz przekierowywania :versioni analizowania, które ... Nie jestem też pewien, jak by to się przydało, bo has()powinno wystarczyć :-)

Martin Tournoij
źródło
2
Czy to has("patch-7.4-399")czy has("patch-7.4.399")? (to ostatnie zostało mi zasugerowane przez pewne uzupełnienie kodu i wydaje się, że tak naprawdę jest to, co faktycznie opisano pod podanym linkiem )
akavel
2
@akavel Oboje działają. Możesz nawet użyć patch-7-4-399;-)
Martin Tournoij
ach, awsum
3
patch-7.4.399Format jest dostępny tylko po 7.4.237. Zobaczyć :h has-patch.
niebieskawy
1
↑ @blueyed odnosi się do całej has('patch-7.4-399')funkcji sprawdzania zarówno wersji major.minor, jak i łatek za jednym zamachem (bez uciekania się v:version): niezależnie od tego, czy używa się -myślników, czy .kropek.
Aaron Thoma