Vimscript: как мне получить ОС под управлением Vim? - PullRequest
10 голосов
/ 27 мая 2011

У меня есть плагин vim, который работает на разных машинах, и иногда ему нужно действовать по-разному, в зависимости от того, Windows это, Linux, Mac.

Какой самый простой способ тестирования операционной системы?Я знаю, что могу разобрать вывод команды: версия.Есть ли что-нибудь попроще, что раскроет ОС?

Ответы [ 3 ]

14 голосов
/ 27 мая 2011

От Google: вы можете использовать has() и список функций в :help feature-list, чтобы определить, какой тип Vim (и, следовательно, под какой ОС работает).

if has('win32')
   ... win32 specific stuff ...
endif

Поиск версииVim "из раздела справки списка возможностей, и это должно привести вас к различным версиям, для которых вы можете проверить.

8 голосов
/ 27 мая 2011

В дополнение к ответу @ John приведен полный список возможных операционных систем:

"▶2 os.fullname
for s:os.fullname in ["unix", "win16", "win32", "win64", "win32unix", "win95",
            \         "mac", "macunix", "amiga", "os2", "qnx", "beos", "vms"]
    if has(s:os.fullname)
        break
    endif
    let s:os.fullname='unknown'
endfor
"▶2 os.name
if s:os.fullname[-3:] is 'nix' || s:os.fullname[:2] is 'mac' ||
            \s:os.fullname is 'qnx' || s:os.fullname is 'vms'
    let s:os.name='posix'
elseif s:os.fullname[:2] is 'win'
    let s:os.name='nt'
elseif s:os.fullname is 'os2'
    let s:os.name='os2'
else
    let s:os.name='other'
endif
"▲2

Это код, используемый моим плагином frawor для определения текущей операционной системы.

0 голосов
/ 27 мая 2011

Из-за моей любви к Python:

python << endpython
import sys
sys.platform
endpython

Также возможно os.name, если необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...