组织模式允许您按“属性”抽屉中的键进行排序,因此实现此目的的一种方法是在搜索开始时在其中设置一个随机排序键。下面的代码就是这样做的。排序完成后,它会删除排序键并删除空的属性抽屉,使内容保持原样。
(defun org-sort-entries-randomly()
(interactive)
(if (org-at-heading-p)
(progn
(setq start (point))
(org-end-of-subtree)
(while (> (point) start)
(if (org-at-heading-p)
(org-set-property "sort-key" (format "%d" (+ 10000 (random 10000)))))
(previous-line))
(org-sort-entries nil ?r nil nil "sort-key")
(goto-char start)
(org-end-of-subtree)
(while (> (point) start)
(if (org-at-heading-p)
(org-delete-property "sort-key" "PROPERTIES"))
(previous-line)))
(message "Not at heading")))
Run Code Online (Sandbox Code Playgroud)