Konfigurowanie wielu reguł podświetlania w vimie


16

Próbuję skonfigurować reguły, aby wyróżnić zarówno końcowe białe znaki, jak i linie o określonej długości, dodając to do mojego .vimrc:

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

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

Wydaje się jednak, że odbiera to, co jest ostatnie. Nie mogę znaleźć sposobu, aby sprawić, by oboje pracowali jednocześnie.

Odpowiedzi:


9

Jednokierunkowa:

highlight EWOL ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
match EWOL /\%>20v.\+\|\s\+$/

Inne:

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.\+/

Dostępne są również: 3match. Jednocześnie mogą być aktywne maksymalnie trzy mecze. Lub możesz użyć matchadd()do tworzenia dopasowań bez ograniczenia ilości.

Uwaga: 3match jest używany przez matchparen, więc będzie konfliktować, jeśli go użyjesz.


7

Użyj matchadd(), więc dodaj to do .vimrc:

highlight ExtraWhitespace ctermbg=grey guibg=grey
call matchadd('ExtraWhitespace', '\s\+$', 11)

highlight OverLength ctermbg=lightgrey guibg=lightgrey
call matchadd('OverLength', '\%>80v.\+')

Aby wyświetlić wszystkie dopasowania:

:echo getmatches()

Aby usunąć dopasowania, użyj matchdelete().


1

Co z użyciem tego

: sy [ntax] match {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.\+/

Możesz dopasować wiele wzorów za pomocą tego ...

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.