我正在尝试通过将其添加到我的 .vimrc 来设置规则以突出显示尾随空格和超过一定长度的行:
highlight ExtraWhitespace ctermbg=lightgray guibg=lightgray
match ExtraWhitespace /\s\+$/
highlight OverLength ctermbg=lightgray guibg=lightgray
match OverLength /\%>80v.\+/
但是,它似乎只会拾取最后一个。我找不到让它们同时工作的方法。
答案1
单程:
highlight EWOL ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
match EWOL /\%>20v.\+\|\s\+$/
其他:
highlight ExtraWhitespace ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
match ExtraWhitespace /\s\+$/
highlight OverLength ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
2match OverLength /\%>80v.\+/
也可以使用:3match
。一次最多可以激活三场比赛。或者您可以使用matchadd()
创建匹配,不受数量限制。
笔记: 3match
被 matchparen 使用,因此如果你使用它就会发生冲突。
答案2
使用matchadd()
,因此将其添加到您的.vimrc
:
highlight ExtraWhitespace ctermbg=grey guibg=grey
call matchadd('ExtraWhitespace', '\s\+$', 11)
highlight OverLength ctermbg=lightgrey guibg=lightgrey
call matchadd('OverLength', '\%>80v.\+')
查看所有比赛:
:echo getmatches()
要删除匹配项,请使用matchdelete()
。
答案3
那么使用这个
:sy[ntax] 匹配 {组名} [{选项}] [excludenl] {模式} [{选项}]
:highlight ExtraWhitespace ctermbg=lightgray guibg=lightgray
:syntax match ExtraWhitespace /\s\+$/
:highlight OverLength ctermbg=lightgray guibg=lightgray
:syntax match OverLength /\%>80v.\+/
您可以使用这个来匹配多种图案...