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
выходных данных.