vim에서 여러 하이라이트 규칙 설정 줄을 모두 강조하는 규칙을

내 .vimrc에 이것을 추가하여 특정 길이를 초과하는 후행 공백과 줄을 모두 강조하는 규칙을 설정하려고합니다.

highlight ExtraWhitespace ctermbg=lightgray guibg=lightgray
match ExtraWhitespace /\s\+$/

highlight OverLength ctermbg=lightgray guibg=lightgray
match OverLength /\%>80v.\+/

그러나 마지막 것만 픽업하는 것 같습니다. 둘 다 동시에 작동하게하는 방법을 찾을 수 없습니다.



답변

일방 통행:

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. 한 번에 최대 3 개의 일치 항목을 활성화 할 수 있습니다. 또는 matchadd()수량에 제한없이 일치를 만드는 데 사용할 수 있습니다 .

참고 : 3match matchparen에서 사용되므로 사용하면 충돌합니다.


답변

를 사용 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().


답변

이것을 사용하는 것은 어떻습니까

: sy [ntax] 일치 {group-name} [{options}] [excludenl] {pattern} [{options}]

:highlight ExtraWhitespace ctermbg=lightgray guibg=lightgray
:syntax match ExtraWhitespace /\s\+$/
:highlight OverLength ctermbg=lightgray guibg=lightgray
:syntax match OverLength /\%>80v.\+/

이것을 사용하여 많은 수의 패턴을 일치시킬 수 있습니다 …