语法高亮显示:匹配光标周围的N行

时间:2013-10-15 19:25:14

标签: vim syntax-highlighting

我想编写一些syn命令来选择当前光标线两侧的一定数量的行,例如,总是有一个3行的“视口”特定的突出显示我把光标放在哪里。

我认为如果可能,它将涉及\%#原子,但我不确定如何实际使用它来进行匹配。

所以基本上,我想这样做:

:syn match ViewPort <SOME-PATTERN-PROBABLY-INVOLVING-%#>
:hi ViewPort guibg=pink

例如。我正在寻找的效果与cursorline非常相似,但不仅仅是当前行,请说当前行加上上一行和下面一行(或上面两行和下面两行等)。 / p>

我的最终目标是拥有一个“安全”的语法,使得大多数文本具有相同的前景色和背景色,因此它实际上是不可见的,并且只有一个小文本窗口一次“可见”。

1 个答案:

答案 0 :(得分:1)

引入了'cursorcolumn'选项,因为先前使用语法/ :match模拟此类操作的尝试是缓慢且不充分的。您的要求看起来像超大尺寸的游标,因此可能会失败。

特别是,当前光标位置的\%#原子是而不是自动更新,如帮助中所述:

  

警告:在使用模式后移动光标时,     结果变得无效。 Vim不会自动更新比赛。     这与语法高亮和'hlsearch'特别相关。

所以你必须使用:autocmd CursorMoved,它可能会非常慢。