Search code examples
vimsyntaxsyntax-highlightinglinehighlighting

How do I make vim syntax highlight a whole line?


I'd like to have vim highlight entire lines that match certain patterns. I can get all the text in a line to highlight (by doing syn match MyMatch "^.*text-to-match.*$"), but it always stops at the end of the text. I'd like to to continue to the end of the term, like highlighting CursorLine.

I've tried replacing $ with a \n^, hoping that would wrap it around. No change. (I didn't actually expect this would work, but there's no harm in trying.) I also tried adjusting the syn-pattern-offset (which I read about here: http://vimdoc.sourceforge.net/htmldoc/syntax.html#:syn-pattern). Long story short, adding he=he-5 will highlight 5 fewer characters, but he=he+5 doesn't show any extra characters because there aren't characters to highlight.

This is my first attempt at making a vim syntax and I'm relatively new to vim. Please be gentle and include explanations.

Thanks!

(edit: Forgot to include, this is a multiline highlight. That probably increases the complexity a bit.)


Solution

  • From the documentation on syn-pattern:

    The highlighted area will never be outside of the matched text.

    I'd count myself surprised if you got this to work, but then again, Vim is always full of surprises.