我正在尝试在我的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文件有一些基本逻辑。
使用&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)