我在我的vimrc中有这个
sil! call neobundle#rc( expand('~/.vim/bundle/') )
if !exists(":NeoBundle")
let choice = confirm('Run bundle setup ?',"&Yes\n&No", 1)
if choice == 1 | call Setup_vim() | en
el
call Load_bundles()
en
这在终端中运行良好,但gvim只是忽略该行并继续,就像我在对话框中单击是一样?!
这只在启动时发生,如果我调用包含此代码的函数,一切正常。我想我可以使用au
命令解决这个问题,但我想知道这里有什么问题?
答案 0 :(得分:2)
您的vimrc文件在启动过程的早期读取; GUI初始化要晚得多。 (具体来说,这些是:help startup
下的步骤3和8。)
您明确设置了默认值1,因此使用第一个替代方案就不足为奇了。
正如您所说,您可以使用VimEnter
自动命令来修复它。我测试了
augroup Foo
au VimEnter * let choice = confirm('Run bundle setup ?',"&Yes\n&No", 1)
augroup END
它按预期工作。对于实际使用,我会将你的行包装在一个函数中,以保持自动命令的简单。
:help startup
:help confirm()
:help :au
:help VimEnter