如何让vim语法突出显示整行?

时间:2010-01-27 21:02:20

标签: vim syntax syntax-highlighting line highlighting

我想让vim突出显示与某些模式匹配的整行。我可以在一行中获取所有文本以突出显示(通过执行syn match MyMatch "^.*text-to-match.*$"),但它总是停在文本的末尾。我想继续这个学期的结束,就像突出显示CursorLine一样。

我尝试用$替换\n^,希望将它包裹起来。没变。 (我实际上并不认为这会起作用,但尝试没有任何害处。)我也尝试调整syn-pattern-offset(我在这里读到:http://vimdoc.sourceforge.net/htmldoc/syntax.html#:syn-pattern)。简而言之,添加he=he-5会突出显示5个字符,但he=he+5不显示任何额外字符,因为没有要突出显示的字符。

这是我第一次尝试制作vim语法,而且我对vim相对较新。请保持温和,并附上解释。

谢谢!

(编辑:忘记包含,这是一个多行高亮。这可能会增加一点复杂性。)

3 个答案:

答案 0 :(得分:12)

由于文件名(缓冲区)和行到整行突出显示需要明确标识,因此不太适应,但显然可以使用 sign 命令:

  

可以突出整体   使用:sign 机制   可以在:help sign-commands发现一个例子   简而言之:

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

显然,你应该选择一个高光   改变颜色的组   linehl论证的背景。

来源:Erik Falor, vim mailing list

答案 1 :(得分:9)

来自syn-pattern的文档:

  

突出显示的区域永远不会   在匹配的文本之外。

如果你让这个工作起来我会感到很惊讶,但是再一次,Vim总是充满了惊喜。

答案 2 :(得分:0)

也可以尝试         :设置光标线         :set cursorcolumn 像这样更改颜色:         :hi光标线         :hi cursorcolumn 使用通常的term =,ctermfg =,ctermbg =等 看到这个答案 VIM Highlight the whole current line