Bạn dường như chỉ đơn giản là có một phiên bản chưa được vá của vim, nếu không :version
lệnh hoặc --version
tham số sẽ liệt kê các bản vá trên dòng thứ hai. Ví dụ trên máy của tôi, nó nói:
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Sep 10 2014 09:36:33)
Included patches: 1-207, 209-355, 357-430
Đây là "patchlevel" 430, nhưng nó bỏ qua các bản vá 208 & 356.
Vim không có "số phiên bản nhỏ" ngoài Major.minor ; mặc dù tôi tin rằng một số bản phân phối có thể sử dụng "patchlevel" như vậy.
Như được hiển thị ở trên, không phải tất cả các bản vá đều được bao gồm, vì vậy nếu bạn muốn sử dụng giá trị này, bạn không thể chỉ kiểm tra xem một số có cao hơn một phiên bản nhất định hay không.
Thông thường, cách tốt nhất là sử dụng has("patch-7.4-399")
; điều này sẽ trở lại đúng nếu:
- Chúng tôi đang chạy Vim 7.4 với bản vá 399 đi kèm.
- Chúng tôi đang chạy Vim 7.5 trở lên.
Bạn cũng có thể sử dụng hình thức has('patch399')
, thường được sử dụng như:
if v:version == 704 && has('patch399')
Nhưng hãy lưu ý; điều này sẽ sai cho Vim 7.5; chỉ sử dụng trong trường hợp rất cụ thể
Xem :help feature-list
để biết thêm thông tin.
Tôi không thể tìm cách liệt kê tất cả các bản vá được bao gồm, ngoài việc chuyển hướng :version
và phân tích cú pháp mà ... Tôi cũng không chắc cách này sẽ hữu ích như thế nào, như has()
vậy là đủ :-)
has("patch-7.4-399")
hayhas("patch-7.4.399")
? (cái sau được gợi ý cho tôi bởi một số hoàn thành mã, và dường như cũng là những gì thực sự được mô tả tại liên kết bạn cung cấp )