如何在编写vimscript时使用选项?

xiozqbni  于 2022-11-11  发布在  其他
关注(0)|答案(3)|浏览(159)

这很简单,但我在网上找不到答案。我想在一个插件文件中做一些类似这样的事情:

" 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
b1uwtaje

b1uwtaje1#

你不能在vim中创建自定义选项。你需要创建一个全局变量来代替:

let g:AutoChecker = 1

....

if g:AutoChecker == 1
   " ...
endif
kcwpcxri

kcwpcxri2#

对于常规选项,我使用以下函数:lh#option#get()。它首先搜索b:{varname}是否存在以返回其值,然后搜索g:{varname}。否则,如果不存在任何变量,则返回提供的默认值。
对于与编程相关的选项(即,可以为特定文件类型覆盖选项),我使用另一个函数:如果您使用了这个选项,那么您就可以使用这个选项。
lh-cpp文档的 C++ Options 部分间接解释了这两个函数的基本原理。

ru9i0ody

ru9i0ody3#

(从问题移至答案部分)。
看来解决的办法是这样的:

if exists('g:nameOfMyOption') && g:nameOfMyOption

     ...

endif

相关问题