随机化 TODO 列表?

THI*_*ELP 5 random emacs org-mode spacemacs

我注意到当我查看 TODO 列表时,我通常只从上半部分完成任务,因为我是从上到下阅读的,当我读到一半时,我找到了一个 TODO这是可以做到的。所以我想知道,有没有办法混合 TODO 列表,以便随机排序?

jus*_*nhj 2

组织模式允许您按“属性”抽屉中的键进行排序,因此实现此目的的一种方法是在搜索开始时在其中设置一个随机排序键。下面的代码就是这样做的。排序完成后,它会删除排序键并删除空的属性抽屉,使内容保持原样。

(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)