如何突出长段?

时间:2014-03-28 09:40:05

标签: vim highlight

我知道如何突出长线。要么:

:match ErrorMsg '\%>140v.\+'

我更喜欢“colorcolumn way”:

:set colorcolumn=140

所以,例如,文字:

  

Vim是由B. Moolenaar编写并首次发布的文本编辑器   公开于1991年。它基于类似Unix的vi编辑器   系统。 Vim是免费的开源软件。

从“Vim is free,etc ......”开始突出显示。

但是如何才能为段落(在本例中为3行)获得相同的结果,例如:

[Empty line]
Vim is a text editor written by B. Moolenaar and first released publicly in 1991. 
It is based on the vi editor common to Unix-like systems. 
Vim is free and open source software
[Empty line]

提前致谢

1 个答案:

答案 0 :(得分:1)

这很难,因为你必须指定(在一个正则表达式中)

  1. 段落的条件(我假设它是由最多一个换行符隔开的行;即空行创建新段落)
  2. 字符计数(140个字符后突出显示)
  3. 这是我取得的最好成绩;它仍然以某种方式匹配"进入"以下段落,如果当前的一个太小:

    :match ColorColumn /\%(\%^\|\n\n\)\%(\%(.\+\n\)*.*\)\&\_.\{140}\%(\zs.\|\n\zs.\)/
    

    说明:

    • 锚定在缓冲区的开头或空行
    • 匹配非空行
    • 和其他字符AND
    • 匹配140个字符和/或换行符
    • 然后在以下字符上开始匹配,或者如果它是换行符(它没有显示正确),则在它之后的下一个字符

    如果有人对此有所改进,我会感到高兴。