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
результатів.