ดูเหมือนว่าคุณจะมีเวอร์ชัน 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
นี่คือ "patchlevel" 430 แต่ข้ามแพทช์ 208 และ 356
เป็นกลุ่มไม่ได้ "หมายเลขรุ่นเล็ก ๆ น้อย ๆ" เกินMAJOR.MINOR ; แม้ว่าฉันเชื่อว่าการกระจายบางอย่างอาจใช้ "patchlevel" เช่นนี้
ดังที่แสดงไว้ด้านบนอาจไม่มีแพตช์ทั้งหมดที่รวมอยู่ด้วยดังนั้นหากคุณต้องการใช้ค่านี้คุณจะไม่สามารถตรวจสอบว่าตัวเลขนั้นสูงกว่ารุ่นที่กำหนดหรือไม่
โดยปกติแล้ววิธีที่ดีที่สุดคือการใช้has("patch-7.4-399")
; สิ่งนี้จะกลับมาจริงถ้า:
- เรากำลังใช้ Vim 7.4 พร้อมกับ patch 399
- เรากำลังเรียกใช้ Vim 7.5 ขึ้นไป
นอกจากนี้คุณยังสามารถใช้รูปแบบhas('patch399')
ซึ่งมักใช้เช่น:
if v:version == 704 && has('patch399')
แต่ระวังให้ดี สิ่งนี้จะเป็นเท็จสำหรับกลุ่ม 7.5; ใช้สิ่งนี้เฉพาะในกรณีที่เฉพาะเจาะจงเท่านั้น
ดู:help feature-list
ข้อมูลเพิ่มเติมได้ที่
ฉันไม่สามารถหารายชื่อแพทช์ที่รวมอยู่ทั้งหมดนอกเหนือจากการเปลี่ยนเส้นทาง:version
และการแยกวิเคราะห์ว่า ... ฉันยังไม่แน่ใจว่าสิ่งนี้จะเป็นประโยชน์อย่างไรเช่นเดียวกับที่has()
ควรจะเพียงพอ :-)
has("patch-7.4-399")
หรือhas("patch-7.4.399")
? (หลังได้รับการแนะนำให้ฉันโดยบางรหัสเสร็จและยังน่าจะเป็นสิ่งที่อธิบายไว้จริงที่ลิงค์ที่คุณให้ )