我想编写一些syn
命令来选择当前光标线两侧的一定数量的行,例如,总是有一个3行的“视口”特定的突出显示我把光标放在哪里。
我认为如果可能,它将涉及\%#
原子,但我不确定如何实际使用它来进行匹配。
所以基本上,我想这样做:
:syn match ViewPort <SOME-PATTERN-PROBABLY-INVOLVING-%#>
:hi ViewPort guibg=pink
例如。我正在寻找的效果与cursorline
非常相似,但不仅仅是当前行,请说当前行加上上一行和下面一行(或上面两行和下面两行等)。 / p>
我的最终目标是拥有一个“安全”的语法,使得大多数文本具有相同的前景色和背景色,因此它实际上是不可见的,并且只有一个小文本窗口一次“可见”。
答案 0 :(得分:1)
引入了'cursorcolumn'
选项,因为先前使用语法/ :match
模拟此类操作的尝试是缓慢且不充分的。您的要求看起来像超大尺寸的游标,因此可能会失败。
特别是,当前光标位置的\%#
原子是而不是自动更新,如帮助中所述:
警告:在使用模式后移动光标时, 结果变得无效。 Vim不会自动更新比赛。 这与语法高亮和'hlsearch'特别相关。
所以你必须使用:autocmd CursorMoved
,它可能会非常慢。