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

标签 vim

我正在尝试向我的 vimrc 文件中添加一个条件,以测试是否设置了数字(行号)选项。我只添加了 :number 与 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条件,但我没有得到正确的东西,我找不到类似的例子。

更新:除了在下面测试 Michael 的代码之外,我还在 vimrc 中使用以下内容简化了测试:
:if exists("g:prog")
:  set number          "trying a different setting
:endif

在我有的 FileType 加载的 html_vimrc 文件中,
"number                "turned this off 
:let g:prog=1

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

最佳答案

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

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

关于vim - 测试 (boolean) 选项值的 vim 脚本语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9746414/

相关文章:

editor - 如何理解这个vim脚本?

json - 将 Vimscript 字典导出为 JSON

c++ - 使用 vim 作为 c++11 IDE

php - 如何在vim中生成 block 注释

vim - 用文档存储 vim 设置

Vim 脚本 :execute command passing numeric prefix

vim - NERDTree 自动加载特定目录

vim - 移动相邻选项卡以进行拆分?

vim - vim 映射中的文本对象序列

session - 是否可以让 gVim 记住窗口大小?