Пользовательский синтаксис Vim только для подсветки фона - PullRequest
8 голосов
/ 12 августа 2011

Я хочу настроить подсветку синтаксиса в Vim (версия с графическим интерфейсом).Для моего языка существует файл синтаксиса.Я хочу добавить к этому синтаксису выделение цветом фона для каждой строки, если эта строка начинается с >.Я понял, что в принципе могу добиться этого путем

:syntax match Output /^>.*$/

и добавив

:hi Output guibg=LightBlue

к цветовой схеме.Фон текста в этих Output строках окрашивается затем в светло-синий цвет, но он также перекрывает цвет переднего плана.Таким образом, большая часть подсветки синтаксиса исчезает.Как сохранить подсветку синтаксиса переднего плана в этих строках?

Также: есть ли способ расширить подсветку фона до конца (правого края экрана) этих строк?

Ответы [ 3 ]

3 голосов
/ 12 августа 2011

Вот как сохранить синтаксис, я сопоставляю строки, начинающиеся с {

:hi Output guibg=LightBlue
:match Output '\%>0v{.*'

enter image description here

Правка: , так как вы хотитенаоборот вам нужно

:match Output '^[^<].*$'

enter image description here

0 голосов
/ 12 августа 2011

Самый простой способ добиться того, что вы ищете, - это команда :match, как указал Эрик Фортис.

Единственный известный мне способ добиться этого с подсветкой синтаксиса - это сопоставить всю строку, как вы делаете сейчас. Затем вам нужно будет указать с помощью модификатора contains=..., какие элементы синтаксиса могут быть в вашей строке. Я также уверен, что этим элементам должен быть присвоен атрибут contained. Таким образом, любой элемент, найденный в вашей строке, то есть соответствующий .*, сохранит свою подсветку.

Подробнее см. :help :syn-contains.

0 голосов
/ 12 августа 2011

Попробуйте это:

:hi Output guibg=LightBlue guifg=NONE
...