在 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()
但我还没有想出如何只突出显示 yyyymmdd
的 mm
。
您可以使用 :h \zs
和 :h \ze
仅突出显示模式的一部分。例如,
highlight yyyymmdd ctermbg=green guibg=green
match yyyymmdd /\(19\|20\)\d\{2}\zs\d\{2}\ze\d\{2}/
使用 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()
但我还没有想出如何只突出显示 yyyymmdd
的 mm
。
您可以使用 :h \zs
和 :h \ze
仅突出显示模式的一部分。例如,
highlight yyyymmdd ctermbg=green guibg=green
match yyyymmdd /\(19\|20\)\d\{2}\zs\d\{2}\ze\d\{2}/