Uwaga: Mimo że obie poprzednie odpowiedzi dały mi wystarczająco dużo informacji, aby dowiedzieć się, jak rozwiązać problem (i otrzymałem ode mnie opinie), żadne z nich nie udzieliło pełnej odpowiedzi. Aby inni z tym samym pytaniem nie musieli przeprowadzać badań, dodaję własną odpowiedź. Jeśli jednak @googletorp lub @Azz edytują swoją odpowiedź, aby uwzględnić te informacje, usunę moją odpowiedź i zaakceptuję ich.
Wyjście do :h feature-listsugeruje, że powinieneś być w stanie wykorzystać has("win32")i has("macunix"), ale ten nie działa w wersji Vima zawarte w OS X. (to robi , jednak praca w MacVim).
Oto, co ostatecznie wykorzystałem:
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
Zauważ, że has("win32")działało dla mnie, nawet w 64-bitowym Vimie na 64-bitowym systemie Windows.
Możesz również użyć podobnych testów unamewewnątrz if has("unix")bloku, aby rozróżnić inne smaki Uniksa. Wystarczy uruchomić unamelub uname -az wiersza polecenia, aby zobaczyć, z czym musisz porównać s:uname. Zobacz także, :h matchstr()czy musisz porównać tylko część unamewyników.