为什么这两个 vim autocmd 相互重叠?

为什么这两个 vim autocmd 相互重叠?

我在 .vimrc 中有这两个 autocmd 配置

autocmd FileType python highlight OverLength ctermbg=red ctermfg=white guibg=red
autocmd FileType python match OverLength /\%80v.\+/
autocmd FileType python highlight ExtraWhitespace ctermbg=blue guibg=blue
autocmd FileType python match ExtraWhitespace /\s\+$/

第一个将以红色背景显示行中大于 80 个字符的部分。
同时,第二个将以蓝色显示行尾的额外空白。

问题是,他们不能一起工作!
如果我同时启用它们,则只有第二个ExtraWhitespace有效。
但如果我注释掉ExtraWhitespace,OverLength就可以正常工作了。

为什么会发生这种情况,如何解决?

答案1

用于:2match第二个(请参阅:help :2match详细信息,并注意:3match用于matchparen插件):

autocmd FileType python highlight OverLength ctermbg=red ctermfg=white guibg=red
autocmd FileType python match OverLength /\%80v.\+/
autocmd FileType python highlight ExtraWhitespace ctermbg=blue guibg=blue
autocmd FileType python 2match ExtraWhitespace /\s\+$/

相关内容