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

时间:2012-03-17 01:15:12

标签: vim

如果设置了number(行号)选项,我正在尝试为我的vimrc文件测试添加条件。我有:仅添加HTML文件类型的数字,

: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

我试过了,

:if (&number == "number")

:if $number

我试过括号,引号,没有引号。我的所有测试都为所有测试设置了拼写或者没有拼写。我正在阅读有关条件的VIMDOCS,但我找不到合适的东西,我找不到类似的例子。


更新:除了测试迈克尔的代码之外,我还在vimrc中使用以下内容简化了测试:

:if exists("g:prog")
:  set number          "trying a different setting
:endif

在我加载的文件类型html_vimrc文件中,

"number                "turned this off 
:let g:prog=1

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

2 个答案:

答案 0 :(得分:4)

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

if (&number == 1)

或更简单:

if (&number)

所以你的整个操作如下:

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

答案 1 :(得分:1)

我将情况简化为

:if exists("g:prog")
:  let g:ok_prog=1          "trying a different setting
:endif

然后我使用:let检查变量是否可用于不同的文件类型用例。这显示了在自动加载的g:var之前加载的.vimrc文件中的变量。 (如果其他人有一个很棒的VIMDOCS参考)。所有条件都失败,因为在条件失败之前,我的:number选项和g:var都没有加载。