批量反转Emacs组织模式中的标题顺序?

时间:2016-01-15 02:37:55

标签: emacs org-mode

有没有办法在Emacs org-mode中批量转换标题的顺序? 我想更改此类列表(但更大,不仅仅是两三项,因此"批量" ):

* personal computer
 * Windows
 * Mac
 * Linux
* StackExchange
 * stackoverflow
* countries
* people

到此:

* people
* countries
* StackExchange
 * stackoverflow
* personal computer
 * Windows
 * Mac
 * Linux

3 个答案:

答案 0 :(得分:2)

选择整个缓冲区并使用M-x org-sort-entries RET F point RET

org-sort-entries对树中某个级别的所有项目进行排序。 'F'告诉它您要根据您指定的函数按相反顺序排序。使用函数point为每个条目赋予与要对其排序的缓冲区位置相对应的值。

要从elisp执行相同的操作,等效函数调用是(org-sort-entries nil ?F 'point)

答案 1 :(得分:0)

当然,M-S-<up>M-S-<down>会在其共同父级内上下移动子树。还有许多其他类似的命令;查看信息页面以获取它们的列表(M-x info "(org) Structure Editing")。

编辑:我认为实际上颠倒子标题的顺序不是你可以开箱即用的。但是,您可以通过使用巧妙选择的参数调用sort-subr来完成此操作。

答案 2 :(得分:0)

C-c ^ 调用 org-sort,它会相应地调用 org-sort-entriesorg-table-sort-linesorg-sort-list

然后你可以:

  • f 点 RET > RET
  • F 点 RET < RET

我不知道 org-sort-entries 的 api 发生了变化,或者什么,当我按照 @clatter 的回答进行操作时,它要求我提供一个压缩器。所以这是基于他的答案。