[英]vim : insert mode problem : remaps (imap) and abbreviations (ab) in .vimrc don't work
[英]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.