Налаштування декількох правил виділення в vim


16

Я намагаюся встановити правила, щоб виділити як пробіли пробілів, так і лінії, що знаходяться на певній довжині, додавши це до мого .vimrc:

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

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

Однак, здається, лише забрати те, що було останнє. Я не можу знайти спосіб змусити їх працювати одночасно.

Відповіді:


9

Односторонній:

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, тому він конфліктує, якщо ви його використовуєте.


7

Використовуйте 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().


1

Як щодо використання цього

: sy [ntax] збігається {група-ім’я} [{параметри}] [виключено] {шаблон} [{параметри}]

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

Ви можете скористатися багатьма моделями за допомогою цього ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.