vim基于分组标准的行/行的交替颜色/阴影

时间:2014-08-20 23:32:12

标签: vim colors highlighting

我有一个类似于md5sum输出的文件,即它包含以下形式的行/行:

9803f392bb3f89f1c20bbc9baec8483a /some/path/file1
9803f392bb3f89f1c20bbc9baec8483a /some/other/path/file1
4ca001c5586eb0744e3174bc75c6fba8 /a/certain/path/file2
4ca001c5586eb0744e3174bc75c6fba8 /another/path/file2
4ca001c5586eb0744e3174bc75c6fba8 /some/different/path/file2withadifferentname
78753e869231cc1417a92eebaa076718 /and/so/on/file3
78753e869231cc1417a92eebaa076718 /and/so/forth/file
78753e869231cc1417a92eebaa076718 /something/like/that

假设文件是​​根据md5sums(即前32个字符)排序的。我想在vim中使用行的替代着色来查看此文件,以便为具有相同md5sums的文件指定相同的颜色。

这可以被认为是基于某些crieteria对行进行分组的特殊情况(在这种情况下,标准与前一行相比前32个字符中的字符串相同)。

我怎么能实现这个目标?

1 个答案:

答案 0 :(得分:0)

使用多行匹配进行语法突出显示可能会非常昂贵并且显着减慢了Vim的速度;另外,我不知道如何获得交替效果。但是,定义那些具有相同校验和的行的折叠非常容易:

:setlocal foldmethod=expr foldexpr=matchstr(getline(v:lnum),'^\\x\\+')==matchstr(getline(v:lnum+1),'^\\x\\+')?1:'<1'

有关详细信息,请参阅:h fold-expr