是否始终在vimrc中调用autocmd?

时间:2010-12-02 16:24:36

标签: macos vim

我在.vimrc

fun! MySys()
    if has('win16') || has('win32') || has('win64')
        return "win"
    endif
endfun

在我的.gvimrc中:

if MySys() == "win"
    autocmd GUIEnter * simalt ~ x " start maximized"
endif

出于某种原因,当我在mac工作站中打开macvim时,正在调用autocmd。它不应该是因为我在Mac上并且autocmd在胜利之内。

这会有什么问题?

1 个答案:

答案 0 :(得分:2)

原因是你做了一个奇怪的比较。

如果你在Windows上,MySys()功能将返回1,如果你不在,则返回0。然后你将0与“胜利”进行比较,(由于我并不理解的原因)会产生匹配。

如何改变这个:

fun! MySys()
    if has('win16') || has('win32') || has('win64')
        return "win"
    elseif has('mac') || has('maxunix')
        return "mac"
    elseif has("unix") || has("win32unix")
        " Unix or Cygwin (which acts like Unix)
        return "unix"
    else
        return "other"
    endif
endfun

(未测试的)