在 vim 中永久突出显示 yyyymmdd 形式的日期中的月份?

Permanently highlight the month in dates of the form yyyymmdd in vim?

使用 vim,我想用不同的颜色突出显示 yyyymmdd 的中间部分 (mm)。

例如

20010101 应突出显示为 20010101

20101010 应突出显示为 20101010.

我能够通过将以下行包含到我的 .exrc 文件中来突出显示整个日期:

highlight yyyymmdd ctermbg=green guibg=green
match yyyymmdd /\(19\|20\)\d\d\(0[1-9]\|1[012]\)\(0[1-9]\|[12][0-9]\|3[01]\)/
autocmd BufWinEnter * match yyyymmdd /\(19\|20\)\d\d\(0[1-9]\|1[012]\)\(0[1-9]\|[12][0-9]\|3[01]\)/
autocmd InsertEnter * match yyyymmdd /\(19\|20\)\d\d\(0[1-9]\|1[012]\)\(0[1-9]\|[12][0-9]\|3[01]\)\%#\@<!$/
autocmd InsertLeave * match yyyymmdd /\(19\|20\)\d\d\(0[1-9]\|1[012]\)\(0[1-9]\|[12][0-9]\|3[01]\)/
autocmd BufWinLeave * call clearmatches()

但我还没有想出如何只突出显示 yyyymmddmm

您可以使用 :h \zs:h \ze 仅突出显示模式的一部分。例如,

highlight yyyymmdd ctermbg=green guibg=green
match yyyymmdd /\(19\|20\)\d\{2}\zs\d\{2}\ze\d\{2}/