我正在使用Pathogen在vim中设置捆绑包。我使用的一个这样的包是vdebug。我想设置vdebug,因此它默认没有“服务器”选项。在vim中,我可以用
中的任何一个来做VdebugOpt server ""
let g:vdebug_options['server'] = ""
但是如果我在〜/ .vimrc中设置其中一个命令,那么当我第一次启动vim时它会失败。这是一个非常简单的.vimrc,可以重现问题:
execute pathogen#infect()
syntax on
filetype plugin indent on
call pathogen#helptags()
VdebugOpt server ""
有了这个,我得到了
Error detected while processing /home/editor/.vimrc:
line 5:
E492: Not an editor command: VdebugOpt server ""
或者,如果我将最后一行更改为
let g:vdebug_options['server'] = ''
我得到了
Error detected while processing /home/editor/.vimrc:
line 5:
E121: Undefined variable: g:vdebug_options
但是一旦vim启动,其中任何一个命令都会起作用。导致这种差异的原因是什么,以及如何在启动时为vim设置我想要的默认值?
答案 0 :(得分:3)
您可以在:h initialization
中看到Vim在启动时会运行.vimrc
(步骤3),然后运行插件(步骤4)。 VdebugOpt
中没有定义.vimrc
,g:vdebug_options
也没有定义{(1}}。所以你不能添加新选项。
但是,您可以定义 g:vdebug_options
:
let g:vdebug_options = {
\ 'server' = ''
\ }
或等效
let g:vdebug_options = {}
let g:vdebug_options['server'] = ''
答案 1 :(得分:0)
如另一个答案所述,当.vimrc运行时,尚未定义插件命令。您可以通过在VimEnter autocmd中调用该命令来解决此问题:
autocmd VimEnter * VdebugOpt server ""