VIM:has('macunix') 或 has('mac') 不起作用

gws*_*gws 5 macos vim

我已经从使用 MacVim 转向在 MacOs Lion 的终端中使用 vim,并且我意识到:

has('macunix')
has('mac')
Run Code Online (Sandbox Code Playgroud)

返回 false 而不是 true (它们在 MacVim 中工作得很好)。这是一个问题,因为我在 Mac 和 Archlinux linode 上使用相同的 .vimrc,并且需要根据操作系统设置特定选项。

到目前为止,我可以挖掘的唯一解决方案是使用 hostname() 函数来获取计算机名称并将其映射到特定操作系统上,但它不如能够检查操作系统本身那么优雅。

有人知道为什么 has('...') 命令不能按记录工作吗?

rom*_*inl 4

我同意 Randy Morris 的观点,使用 MacVim 的捆绑 CLI 可执行文件。

然而,这里有几行来自我的~/.vimrc

let os=substitute(system('uname'), '\n', '', '')
if os == 'Darwin' || os == 'Mac'
    set guifont=Inconsolata-dz:h12
    " more...
elseif os == 'Linux'
    set guifont=Inconsolata-dz\ Medium\ 10
    " more...
endif
Run Code Online (Sandbox Code Playgroud)

在 Mac OS X 上,当处于 X11/XQuartz 时$ uname返回,否则返回。DarwinMac