我有一个类似于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个字符中的字符串相同)。
我怎么能实现这个目标?
答案 0 :(得分:0)
使用多行匹配进行语法突出显示可能会非常昂贵并且显着减慢了Vim的速度;另外,我不知道如何获得交替效果。但是,定义那些具有相同校验和的行的折叠非常容易:
:setlocal foldmethod=expr foldexpr=matchstr(getline(v:lnum),'^\\x\\+')==matchstr(getline(v:lnum+1),'^\\x\\+')?1:'<1'
有关详细信息,请参阅:h fold-expr
。