繁体   English   中英

在vim中工作的命令在vimrc中不起作用

[英]Commands that work in vim don't work in vimrc

我正在使用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默认值?

您可以看到:h initialization ,Vim将在启动时运行.vimrc (步骤3),然后运行插件(步骤4)。 VdebugOpt根本没有在.vimrc定义,也没有在g:vdebug_options (因此您无法添加新选项)。

但是,您可以定义 g:vdebug_options

let g:vdebug_options = {
  \   'server' = ''
  \ }

或者等价的

let g:vdebug_options = {}
let g:vdebug_options['server'] = ''

如另一个答案所述,当.vimrc运行时,尚未定义插件命令。 您可以通过在VimEnter autocmd中调用该命令来解决此问题:

autocmd VimEnter * VdebugOpt server ""

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM