假设我的.vimrc文件中包含以下内容:
au bufenter * RainbowParenthesesToggle
但是我在一个陌生的机器上,还没有安装所有插件。这意味着当我启动Vim时,出现以下错误信息:
E492: Not an editor command: RainbowParenthesesToggle
我该如何防范,或者在启动Vim时想打包这些调用以避免在出现此错误消息时使用if语句呢?
最简单的方法是通过:silent!
(注意!
)抑制错误消息:
:au bufenter * silent! RainbowParenthesesToggle
它更干净(尤其是对于每个上运行的autocmd BufEnter
)可以避免调用。可以使用来检查命令的存在exists(':RainbowParenthesesToggle') == 2
。
:au bufenter * if exists(':RainbowParenthesesToggle') == 2 | RainbowParenthesesToggle | endif
最好只检查一次,而根本不要定义autocmd。问题是您~/.vimrc
的资源早于插件!有两种解决方法:
1)在检查之前明确获取插件的来源:
runtime! plugin/rainbowparentheses.vim
if exists(':RainbowParenthesesToggle') == 2
au bufenter * RainbowParenthesesToggle
endif
2)将定义和条件移动到插件之后的位置。~/.vim/after/plugin/rainbowparentheses.vim
将会是个好地方。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句