在我的.vimrc
中,我有一个函数:
function! SetPHPOptions()
setlocal shiftwidth=4 tabstop=4 softtabstop=4 expandtab
if !&diff
call tagbar#autoopen(0)
endif
endfunction
它的调用方式是:
autocmd FileType php call SetPHPOptions()
但是当我运行vimdiff file1.php file2.php
时,标签栏正在打开。当我注释掉该行时,不会。
我将功能更改为此:
function! SetPHPOptions()
setlocal shiftwidth=4 tabstop=4 softtabstop=4 expandtab
echo "Outside function" &diff
if !&diff
call tagbar#autoopen(0)
echo "Inside function" &diff
endif
endfunction
在Vim加载的控制台中,它的输出是:
Outside function 0
Inside function 0
作为一项健全性测试,我在echo &diff
中运行了vimdiff
,它返回了1
。
是什么导致Vim在我的用例中忽略了&diff
的值,并且有解决方法?