为什么Vim忽略&diff?

时间:2019-06-18 13:09:27

标签: vim

在我的.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的值,并且有解决方法?

0 个答案:

没有答案