ฉันจะรู้เวอร์ชันของแพตช์ของฉันได้อย่างไร


17

ฉันได้รับการติดตั้งเป็นกลุ่ม 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

นี่คือ "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()ควรจะเพียงพอ :-)


2
มันเป็นhas("patch-7.4-399")หรือhas("patch-7.4.399")? (หลังได้รับการแนะนำให้ฉันโดยบางรหัสเสร็จและยังน่าจะเป็นสิ่งที่อธิบายไว้จริงที่ลิงค์ที่คุณให้ )
akavel

2
@ akavel พวกเขาทั้งคู่ทำงาน คุณสามารถใช้patch-7-4-399;-)
Martin Tournoij

อ๊ะ awsum แล้ว :)
akavel

3
รูปแบบสามารถใช้ได้เฉพาะหลังจากที่patch-7.4.399 ดู7.4.237 :h has-patch
blueyed

1
bl @blueyed หมายถึงhas('patch-7.4-399')คุณสมบัติทั้งหมดของการตรวจสอบทั้งรุ่นใหญ่และรุ่นแพทช์ในหนึ่งโฉบ ( v:versionโดยไม่ต้องใช้): เป็นอิสระจากการใช้-เครื่องหมายขีดหรือ.จุด
Aaron Thoma
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.