NB แม้ว่าคำตอบก่อนหน้านี้ทั้งสองให้ข้อมูลฉันเพียงพอที่จะคิดออกว่าจะแก้ปัญหาได้อย่างไร (และรับ upvotes จากฉัน) แต่ก็ไม่ได้ให้คำตอบทั้งหมด เพื่อให้ผู้อื่นที่มีคำถามเดียวกันไม่ต้องทำวิจัยฉันเพิ่มคำตอบของตัวเอง อย่างไรก็ตามหาก @googletorp หรือ @Azz แก้ไขคำตอบของพวกเขาเพื่อรวมข้อมูลนี้ฉันจะลบคำตอบและยอมรับคำตอบของพวกเขา
การส่งออกไปยัง:h feature-list
แสดงให้เห็นว่าคุณควรจะสามารถที่จะใช้has("win32")
และhas("macunix")
แต่หลังไม่ทำงานในรุ่นที่เป็นกลุ่มที่รวมอยู่ใน OS X ได้ (มันไม่แต่การทำงานใน MacVim.)
นี่คือสิ่งที่ฉันใช้:
if has("win32")
"Windows options here
else
if has("unix")
let s:uname = system("uname")
if s:uname == "Darwin\n"
"Mac options here
endif
endif
endif
โปรดทราบว่าใช้has("win32")
งานได้กับฉันแม้กระทั่ง 64 Vim บน Windows 64 บิต
คุณสามารถใช้การทดสอบที่คล้ายกันของuname
ภายในif has("unix")
บล็อคเพื่อแยกความแตกต่างของ Unix เพียงแค่เรียกใช้uname
หรือuname -a
จากบรรทัดคำสั่งเพื่อดูสิ่งที่คุณต้องการเปรียบเทียบs:uname
ด้วย ดูเพิ่มเติม:h matchstr()
หากคุณต้องการเปรียบเทียบเพียงบางส่วนของuname
ผลลัพธ์