我正在尝试向我的 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/