ดูเหมือนว่าคุณจะมีเวอร์ชัน 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")? (หลังได้รับการแนะนำให้ฉันโดยบางรหัสเสร็จและยังน่าจะเป็นสิ่งที่อธิบายไว้จริงที่ลิงค์ที่คุณให้ )