2010-12-02 2 views
0

у меня в .vimrc:Всегда ли autocmd вызывается в 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 

По какой-то причине autocmd вызывается, когда я открываю MacVim в макинтош рабочей станции. Это не должно быть, потому что я нахожусь на mac, и autocmd находится внутри выигрыша, если.

Какая проблема может быть такой?

ответ

2

Причина в том, что вы делаете странное сравнение.

Функция MySys() вернет 1, если вы находитесь на Windows и 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 

(непроверенные)

+0

@AI: Я изменил мой вопрос. Я вставил неправильную функцию. – 2010-12-02 16:41:06

Смежные вопросы