Vim'de birden çok vurgulama kuralı ayarlama


16

Benim sondaki boşluk ve bu benim .vimrc için ekleyerek belirli bir uzunluktaki satırları vurgulamak için kuralları ayarlamaya çalışıyorum:

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

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

Ancak, sadece hangisi sonuncusu alıyor gibi görünüyor. İkisinin aynı anda çalışmasını sağlayacak bir yol bulamıyorum.

Yanıtlar:


9

Tek yön:

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

Bir diğeri:

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

Ayrıca mevcut: 3match. Bir seferde en fazla üç maç etkin olabilir. Veya matchadd()miktar sınırlaması olmadan eşleşme oluşturmak için kullanabilirsiniz .

Not: 3match matchparen tarafından kullanılır, bu nedenle kullanırsanız çakışacaktır.


7

Kullanın matchadd(), bu yüzden şunu ekleyin .vimrc:

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

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

Tüm eşleşmeleri görüntülemek için:

:echo getmatches()

Eşleşmeleri kaldırmak için kullanın matchdelete().


1

Bunu kullanmaya ne dersin?

: sy [ntax], {grup-adı} [{options}] [hariç tutulan] {pattern} [{options}] ile eşleşir

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

Bunu kullanarak birçok desen eşleştirebilirsiniz ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.