gvim中确认对话框的奇怪行为
我的vimrc里有这个gvim中确认对话框的奇怪行为,vim,Vim,我的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只是
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只是忽略了该行并继续,就好像我在对话框中单击了Yes
只有在启动时才会发生这种情况,如果我调用包含此代码的函数,一切都会正常工作。我想我可以使用
au
命令解决这个问题,但我想知道这里的问题是什么?在启动过程的早期读取vimrc文件;GUI初始化要晚得多。(具体来说,这些是:help startup
下的步骤3和步骤8)
您显式地将默认值设置为1,因此使用第一个备选方案也就不足为奇了
正如您所说的,您可以通过使用VimEnter
autocommand来修复它。我测试了
augroup Foo
au VimEnter * let choice = confirm('Run bundle setup ?',"&Yes\n&No", 1)
augroup END
这一切都如期而至。为了实际使用,我会将您的行包装在一个函数中,以保持自动命令的简单性
:help startup
:help confirm()
:help :au
:help VimEnter