org-mode 有一个功能可以做到这一点,它被称为 org-sort-entries。命令提示排序类型,在您的情况下为“o”。
要让它自动执行上述操作,请将其添加到您的配置文件中:
(defun xmonk/org-sort-todo-list ()
"Sort buffer in todo order."
(interactive)
(save-excursion
(mark-whole-buffer)
(org-sort-entries nil ?o))
(org-overview))
(add-hook 'org-after-todo-state-change-hook 'xmonk/org-sort-todo-list)
将状态从 Todo 更改为 Done 时的自动重新归档有点棘手并会导致错误,但执行此操作的代码将是这样的:
(setq org-refile-use-outline-path "Anti-todo")
(defun xmonk/org-refile-done()
(interactive)
(beginning-of-buffer)
(re-search-forward "DONE")
(if (match-beginning 0)
(let ((org-refile-targets '((nil :maxlevel . 5))))
(org-refile nil (current-buffer)))))
然后你可以像这样从上面的钩子中调用它:
(add-hook 'org-after-todo-state-change-hook 'xmonk/org-refile-done)
它仍然会要求您确认是否要在 Anti-todo 标题下重新提交。