Bagaimana saya tahu versi tambalan vim saya?

17

Saya telah menginstal vim 7.4, tetapi saya tidak yakin level patch apa yang digunakan ketika saya menginstalnya. Bagaimana saya memeriksanya?

vim --version

Memberi

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

Tetapi itu tidak memberikan level patch atau nomor versi minor.

Christopher Bottoms
sumber

Jawaban:

25

Anda tampaknya hanya memiliki versi vim yang belum ditambal, jika tidak maka :versionperintah atau --versionparameter akan mencantumkan tambalan di baris kedua. Misalnya di komputer saya dikatakan:

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

Ini adalah "patchlevel" 430, tetapi melompati patch 208 & 356.

Vim tidak memiliki "nomor versi minor" di luar major.minor ; walaupun saya percaya bahwa beberapa distribusi mungkin menggunakan "patchlevel".


Seperti yang ditunjukkan di atas, tidak semua tambalan dapat dimasukkan, jadi jika Anda ingin menggunakan nilai ini, Anda tidak bisa hanya memeriksa apakah jumlahnya lebih tinggi dari versi tertentu.

Biasanya, cara terbaik adalah menggunakan has("patch-7.4-399"); ini akan mengembalikan true jika:

  • Kami menjalankan Vim 7.4 dengan patch 399 disertakan.
  • Kami menjalankan Vim 7.5 atau lebih baru.

Anda juga dapat menggunakan bentuk has('patch399'), yang biasanya digunakan seperti:

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

Namun waspadai; ini akan salah untuk Vim 7.5; gunakan ini hanya dalam kasus yang sangat spesifik.

Lihat :help feature-listuntuk informasi lebih lanjut.


Saya tidak dapat menemukan cara untuk membuat daftar semua tambalan yang disertakan, selain mengarahkan ulang :versiondan menguraikannya ... Saya juga tidak yakin bagaimana ini akan berguna, sebagaimana has()seharusnya sudah cukup :-)

Martin Tournoij
sumber
2
Apakah itu has("patch-7.4-399")atau has("patch-7.4.399")? (yang terakhir disarankan kepada saya oleh beberapa penyelesaian kode, dan juga tampaknya menjadi apa yang sebenarnya dijelaskan pada tautan yang Anda berikan )
aliasvel
2
@ Omvel Mereka berdua bekerja. Anda bahkan bisa menggunakan patch-7-4-399;-)
Martin Tournoij
ahh, awsum, lalu :)
alias
3
The patch-7.4.399format hanya tersedia setelah 7.4.237. Lihat :h has-patch.
blueyed
1
Bl @blueyed mengacu pada seluruh has('patch-7.4-399')fitur untuk memeriksa versi major.minor dan patch dalam satu gerakan (tanpa menggunakan v:version): tidak tergantung apakah menggunakan -tanda hubung atau .titik.
Aaron Thoma