Как узнать версию патча моего vim?

17

У меня установлен vim 7.4, но я не уверен, на каком уровне патча он был при установке. Как я могу проверить?

vim --version

дает

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

Но это не дает уровень патча или младший номер версии.

Кристофер Боттомс
источник

Ответы:

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"); это вернет истину, если:

  • Мы работаем с Vim 7.4 с включенным патчем 399.
  • Мы работаем с 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
ааааааа, тогда :)
akavel
3
patch-7.4.399Формат доступен только после того, как 7.4.237. См :h has-patch.
голубоглазый
1
↑ @blueyed относится ко всей has('patch-7.4-399')функции проверки версий major.minor и патча одним махом (без обращения к v:version): независимо от того, используете ли вы -тире или .точки.
Аарон Тома