设置expandtab时,高亮显示vim中的选项卡

设置expandtab时,高亮显示vim中的选项卡,vim,indentation,vim-syntax-highlighting,Vim,Indentation,Vim Syntax Highlighting,是否有一种方法可以使vim高亮显示具有给定颜色的选项卡字符,但仅在设置了expandtab选项的情况下?我知道'listchars',但我希望能够区分“有效选项卡”和“无效选项卡”。您可以添加自定义:基于:autocmds的选项卡字符匹配,如下所示: autocmd WinEnter,VimEnter * \ if &expandtab | \ silent! call matchadd('Error', '\t', 10, 31337) | \ else | \

是否有一种方法可以使vim高亮显示具有给定颜色的选项卡字符,但仅在设置了
expandtab
选项的情况下?我知道
'listchars'
,但我希望能够区分“有效选项卡”和“无效选项卡”。

您可以添加自定义
:基于
:autocmds
的选项卡字符匹配,如下所示:

autocmd WinEnter,VimEnter *
\   if &expandtab |
\       silent! call matchadd('Error', '\t',  10, 31337) |
\   else |
\       silent! call matchdelete(31337) |
\   endif
(为了简单起见,它使用硬编码的ID。)

或者,您可以使用像my这样的插件,它检查缓冲区及其设置的不一致缩进和不匹配,默认情况下还会突出显示错误的行。(插件页面有指向其他插件的链接。)

选项卡“有效”或“无效”的原因是什么?“无效”可能是一个强有力的词。。。我指的是文件中不使用制表符进行缩进的制表符。我使用expandtab的方式是,它总是与文件缩进设置相匹配。