假设我的 .vimrc 中有以下内容:
au bufenter * RainbowParenthesesToggle
然而,我在一台陌生的机器上,我还没有安装我所有的插件。这意味着当我启动 Vim 时,我会收到以下错误消息:
E492: Not an editor command: RainbowParenthesesToggle
我如何防止这种情况发生,或者我想用 if 语句包装这些调用以避免在启动 Vim 时收到此错误消息?
最佳答案
压制
最简单的方法是通过 :silent!
抑制错误消息(注意 !
):
:au bufenter * silent! RainbowParenthesesToggle
每次检查
它更干净(特别是对于在每个
BufEnter
上运行的 autocmd )以避免调用。可以使用 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
将是一个好地方。关于vim - 如何避免 Vim 错误信息 "Not an editor command",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22531336/