这很简单,但我在网上找不到答案。我想在一个插件文件中做一些类似这样的事情:
" MyChecker.vim
"
" Uncomment the following line to set the autochecker option
"set autochecker=1
if ISSET(autochecker)
autocmd InsertChange * :call MyAutoCheckerFunction()
endif
我怎么做ISSET行呢?我宁愿不显式地设置autochecker=0,我希望它只检查autochecker是否存在。
编辑:当我尝试以下操作时:
if &autochecker == 1
...
endif
我收到此错误消息:
Error detected while processing MyChecker.vim:
line 32:
E113: Unknown option: autochecker
E15: Invalid expression: &autochecker == 1
3条答案
按热度按时间b1uwtaje1#
你不能在vim中创建自定义选项。你需要创建一个全局变量来代替:
kcwpcxri2#
对于常规选项,我使用以下函数:lh#option#get()。它首先搜索
b:{varname}
是否存在以返回其值,然后搜索g:{varname}
。否则,如果不存在任何变量,则返回提供的默认值。对于与编程相关的选项(即,可以为特定文件类型覆盖选项),我使用另一个函数:如果您使用了这个选项,那么您就可以使用这个选项。
lh-cpp文档的 C++ Options 部分间接解释了这两个函数的基本原理。
ru9i0ody3#
(从问题移至答案部分)。
看来解决的办法是这样的: