我想让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相对较新。请保持温和,并附上解释。
谢谢!
(编辑:忘记包含,这是一个多行高亮。这可能会增加一点复杂性。)
答案 0 :(得分:12)
由于文件名(缓冲区)和行到整行突出显示需要明确标识,因此不太适应,但显然可以使用 sign 命令:
可以突出整体 使用:sign 机制 可以在
:help sign-commands
发现一个例子 简而言之:
:sign define wholeline linehl=ErrorMsg
:sign place 1 name=wholeline line=123 file=thisfile.txt
显然,你应该选择一个高光 改变颜色的组 linehl论证的背景。
答案 1 :(得分:9)
来自syn-pattern
的文档:
突出显示的区域永远不会 在匹配的文本之外。
如果你让这个工作起来我会感到很惊讶,但是再一次,Vim总是充满了惊喜。
答案 2 :(得分:0)
也可以尝试 :设置光标线 :set cursorcolumn 像这样更改颜色: :hi光标线 :hi cursorcolumn 使用通常的term =,ctermfg =,ctermbg =等 看到这个答案 VIM Highlight the whole current line