как я обнаруживаю OS X в своем .vimrc файле, таким образом, определенные конфигурации будут только относиться к OS X?

Я использую свой .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.)

49
задан iconoclast 15 May 2010 в 14:48
поделиться

2 ответа

Мой обновленный .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 . Ваш пробег может отличаться.

49
ответ дан 7 November 2019 в 11:32
поделиться

Вам нужен macunix . Процитируем : h feature-list :

mac     Macintosh version of Vim.
macunix Macintosh version of Vim, using Unix files (OS-X).

mac, AFAIK, применяется только к Mac старой школы, где \ r - разделитель строк.

9
ответ дан 7 November 2019 в 11:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: