如果设置了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文件有一些基本逻辑。
答案 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都没有加载。