我们假设我们有以下段落用空行隔开:
B Heading
Lorem ipsum 1.
Lorem ipsum 2.
A Heading
Lorem ipsum 3.
Lorem ipsum 4.
如何根据标题对这些段落进行排序并获得以下文字?
A Heading
Lorem ipsum 3.
Lorem ipsum 4.
B Heading
Lorem ipsum 1.
Lorem ipsum 2.
答案 0 :(得分:9)
一种解决方案是在排序之前连接段落。
假设您未在文本中使用@
符号,则可以使用:
:%s/\(.\+\)\n/\1@//
这样做。然后你可以用
对你的行进行排序:sort
然后继续进行相反的操作以恢复你的段落:
:%s/@/\r/g
答案 1 :(得分:0)
我已经写了AdvancedSorters plugin来简化@ Qeole在单个命令中给出的三个步骤:
:SortRangesByHeader /\u Heading/