首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在VimScript中检测到真正的操作系统?

问如何在VimScript中检测到真正的操作系统?
EN

Stack Overflow用户
提问于 2018-07-27 11:45:18
回答 1查看 325关注 0票数 1

我需要决定我需要选择哪个二进制可执行文件,所以我必须知道运行Vim的操作系统。

我发现有一个相关的问题here。但是has('win32') || has('win64')解决方案对我不起作用,因为当我在Windows上使用msys2 Vim时,我会从has解决方案获得0,因为has解决方案只告诉操作系统vim是为哪个操作系统编译的,而不是它运行在哪个真正的操作系统上。

当我需要决定我需要选择哪个二进制可执行文件时,我必须知道真正的操作系统。这个问题有什么好主意吗?

EN

回答 1

Stack Overflow用户

发布于 2018-07-27 14:04:12

来自this Gist

定义一个包含当前环境名称的全局变量(如果尚未定义)。

代码语言:javascript
复制
if !exists('g:env')
    if has('win64') || has('win32') || has('win16')
        let g:env = 'WINDOWS'
    else
        let g:env = toupper(substitute(system('uname'), '\n', '', ''))
    endif
endif

使用全局变量…

代码语言:javascript
复制
if g:env =~ 'DARWIN'
    " ... to do Mac OS X-specific stuff.
endif

if g:env =~ 'LINUX'
    " ... to do Linux-specific stuff.
endif

if g:env =~ 'WINDOWS'
    " ... to do Windows-specific stuff.
endif

if g:env =~ 'CYGWIN'
    " ... to do Cygwin-specific stuff.
endif

if g:env =~ 'MINGW'
    " ... to do MinGW-specific stuff (Git Bash, mainly).
endif

诸若此类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51550482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档