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.
Dla przypomnienia: w vimie z MSYS2 ma („unix”) wynosi 1, ma („win32”) wynosi 0 i ma („win32unix”) wynosi 1. Więc użyj ma („win32unix”), aby go rozróżnić.
@Rich: Wszystkie dane SU są licencjonowane na licencji Creative Commons Uznanie autorstwa - Na tych samych warunkach, do których wydają się przestrzegać.
Możesz zajrzeć tutaj
Zasadniczo, można skorzystać z jednego
has()
,system()
:źródło
Wydaje się, że tego właśnie szukasz. Nie do końca to rozumiem, więc po prostu cię połączę.
/programming/2842078/how-do-i-detect-os-x-in-my-vimrc-file-so-certain-configurations-will-only-apply
źródło