Как сделать так, чтобы синтаксис vim выделил всю строку? - PullRequest
10 голосов
/ 28 января 2010

Я бы хотел, чтобы vim выделил целые строки, которые соответствуют определенным шаблонам. Я могу выделить весь текст в строке для выделения (выполнив syn match MyMatch "^.*text-to-match.*$"), но он всегда останавливается в конце текста. Я хотел бы продолжить до конца термина, как выделение CursorLine.

Я пытался заменить $ на \n^, надеясь, что это обернется. Без изменений. (На самом деле я не ожидал, что это сработает, но попытаться не повредит.) Я также попытался отрегулировать смещение син-паттерна (о котором я читал здесь: http://vimdoc.sourceforge.net/htmldoc/syntax.html#:syn-pattern). Короче говоря, добавив he=he-5 выделит на 5 символов меньше, но he=he+5 не показывает никаких дополнительных символов, потому что нет символов, которые нужно выделить.

Это моя первая попытка создания синтаксиса vim, и я относительно новичок в vim. Пожалуйста, будьте нежны и включайте объяснения.

Спасибо!

(редактировать: забыл включить, это многострочный подсветка. Это, вероятно, немного увеличивает сложность.)

Ответы [ 3 ]

12 голосов
/ 12 декабря 2010

Это не очень адаптивно, так как имя файла (буфер) и выделение строки на полную строку должны быть явно определены, но, очевидно, можно использовать команду sign :

Можно выделить целый линия с использованием механизма : sign .
Пример можно найти по адресу :help sign-commands
В двух словах:

:sign define wholeline linehl=ErrorMsg
:sign place 1 name=wholeline line=123 file=thisfile.txt

Очевидно, вы должны выбрать изюминку группа, которая меняет цвет фон для аргумента linehl.

источник: Эрик Фалор, список рассылки vim

9 голосов
/ 28 января 2010

Из документации на syn-pattern:

Подсвеченная область никогда не будет вне сопоставленного текста.

Я бы посчитал себя удивленным, если бы ты заставил это работать, но опять же, Вим всегда полон сюрпризов.

0 голосов
/ 05 июля 2018

тоже можно попробовать : установить линию курсора : установить курсор-столбец изменить цвета, как это: : привет курсор : привет курсор-столбец используя обычный термин =, ctermfg =, ctermbg = и т. д. увидеть этот ответ VIM Выделить всю текущую строку

...