测试(布尔)选项值的vim脚本语法是什么?

xti*_*ian 2 vim

我正在尝试在我的vimrc文件中添加一个条件,以测试是否设置了数字(行号)选项。我只添加了HTML文件类型的:number,

:autocmd FileType html source $HOME/.vim/html_vimrc.vim

:if ('&number' == 0)  "IF number is off
: set spell           "turn on spell checker
:else                 "ELSE file type is HTML
:  set nospell        "turn spell checker off 
:endif
Run Code Online (Sandbox Code Playgroud)

我试过了,

:if (&number == "number")

:if $number
Run Code Online (Sandbox Code Playgroud)

我试过用括号,引号,无引号。我所有的测试要么全部设置咒语,要么完全没有。我正在阅读有条件的VIMDOCS,但没有得到正确的选择,也找不到类似的示例。


更新:除了在下面测试Michael的代码外,我还在vimrc中使用以下代码简化了测试:

:if exists("g:prog")
:  set number          "trying a different setting
:endif
Run Code Online (Sandbox Code Playgroud)

并且在我具有FileType加载的html_vimrc文件中,

"number                "turned this off 
:let g:prog=1
Run Code Online (Sandbox Code Playgroud)

在这种情况下,已设置了g.prog的test.html测试用例,但未设置“ number”。在test.vim情况下,未设置g:prog,而未设置“ number”。这似乎暗示着VIM如何处理我缺少的已加载vimrc文件有一些基本逻辑。

Mic*_*ski 5

使用&number测试一个布尔值,不带引号。

if (&number == 1)
Run Code Online (Sandbox Code Playgroud)

或更简单地说:

if (&number)
Run Code Online (Sandbox Code Playgroud)

因此,您的整个操作如下所示:

if (&number == 0)  "IF number is off
 set spell           "turn on spell checker
else                 "ELSE file type is HTML
  set nospell        "turn spell checker off 
endif
Run Code Online (Sandbox Code Playgroud)