NB Хоча обидві попередні відповіді давали мені достатньо інформації, щоб зрозуміти, як вирішити проблему (і отримали відгуки від мене), жодна з них фактично не дала повної відповіді. Так що іншим із тим самим питанням не доведеться робити дослідження, я додаю власну відповідь. Однак якщо @googletorp або @Azz відредагують свою відповідь, щоб включити цю інформацію, я видалю свою відповідь і прийму їх.
Вихід до :h feature-listпередбачає , що ви повинні бути в змозі використати has("win32")і has("macunix"), але останній не працює у версії Vim включений в 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 на 64-бітній Windows.
Ви також можете використовувати подібні тести unameвсередині if has("unix")блоку, щоб відрізнити інші смаки Unix. Просто запустіть unameабо uname -aз командного рядка, щоб побачити, з чим вам потрібно порівняти s:uname. Дивіться також, :h matchstr()якщо вам потрібно порівняти лише частину unameрезультатів.