Я использую свой .vimrc файл на моем ноутбуке (OS X) и несколько серверов (Solaris & Linux), и мог гипотетически когда-нибудь использовать его на поле Windows. Я знаю, как обычно обнаруживать Unix и окна, но как я обнаруживаю OS X? (И в этом отношении, там способ различать Linux и Солярис, и т.д. И есть ли список где-нибудь всех строк, который 'имеет', может взять? Мой Google-fu ничего не поднял.)
Например, я использовал бы что-то вроде этого:
if has("mac")
" open a file in TextMate from vi: "
nmap mate :w:!mate %
elseif has("unix")
" do stuff under linux and "
elseif has("win32")
" do stuff under windows "
endif
Но ясно "Mac" не является правильной строкой, ни является любыми из других, я попробовал.
ОБНОВЛЕНИЕ: ответ ниже ("macunix") справедливо ясно кажется, что должен работать, но по некоторым причинам он не делает. (Возможно, Apple не скомпилировала энергию правильно для ответа на это? Кажется маловероятным.)
Во всяком случае я предполагаю, что должен сместить фокус вопроса: у кого-либо есть решение, которое достигнет тех же целей? (Таким образом, успешно обнаруживая, что .vimrc файл используется на Mac OS X.)
Мой обновленный .vimrc
теперь использует следующее:
if has("gui_running")
" Gvim
if has("gui_gtk2") || has("gui_gtk3")
" Linux GUI
elseif has("gui_win32")
" Win32/64 GVim
elseif has("gui_macvim")
" MacVim
else
echo "Unknown GUI system!!!!"
endif
else
" Terminal vim
endif
Мой исходный ответ ниже
Вы можете попробовать то, что я делаю в моем .vimrc:
if has("unix")
let s:uname = system("uname -s")
if s:uname == "Darwin"
" Do Mac stuff here
endif
endif
Хотя, чтобы быть полностью прозрачным, мой фактический .vimrc гласит:
let s:uname = system("echo -n \"$(uname)\"")
if !v:shell_error && s:uname == "Linux"
В основном для обнаружения Linux (в отличие от OSX)
Я не уверен, обязательно ли вам это делать echo -n \ "$ (uname) \"
, но это было связано с новой строкой в конце вызова uname
. Ваш пробег может отличаться.
Вам нужен macunix
. Процитируем : h feature-list
:
mac Macintosh version of Vim.
macunix Macintosh version of Vim, using Unix files (OS-X).
mac, AFAIK, применяется только к Mac старой школы, где \ r - разделитель строк.