11 普通命令:sort可以根据列或虚拟列(\%c或\%v)对行进行排序,可以将更高级别的逻辑列用作排序键吗?在这种情况下,使用正则表达式看起来有点复杂(该列在行尾吗?),它看起来与sort实用程序(sork -k)相似,但是在Windows上无法使用此功能进行排序。Vim插件也将提供帮助。 例如,我想根据最后一列(用逗号分隔)对下面的2行进行排序。我的实际情况有更多的列和字符串模式。指定列定界符将大大简化它。 xxx,yyy,zzz,0x123 zzxz,xxxx,yyyy,0x121 regular-expression sort — 汤姆森 source
11 Vim的排序使您可以跳过{pattern}或仅考虑它(带有r标志)。最后一个逗号分隔列的正则表达式很容易公式化:跳过所有内容,直到一行中包括最后一个逗号为止: :sort/.*,/ 对于任何其他列,我将使用该r标志,并通过跳过前N 2列(此处:)\zs: :sort/\([^,]*,\)\{2}\zs[^,]*/ — 英戈·卡卡特(Ingo Karkat) source 1 由于最后一列恰好是十六进制数字,因此使用该x标志可能也会有所帮助。 — jecxjo,2015年 这看起来很棒。最后一列可能是特例。中间列有任何简单表示吗? — 汤姆森 我以为您能够为此提出一些建议,但是您来了。请单击旁边的勾号,接受我的(已编辑)答案。谢谢! — Ingo Karkat,2015年
x
标志可能也会有所帮助。