如何在Emacs Org-Mode中隐藏所有“DONE”条目

39

我希望能够在org-mode中切换“完成”条目的显示和隐藏。

另外,是否可以只打开未完成的条目?


5
你也可以将所有已完成的任务进行归档,例如:https://dev59.com/Vmw05IYBdhLWcg3w11Qk。 - N.N.
另一种方法可能是折叠所有已完成的任务,这样它们的子树和包含的任何文本都将被隐藏。 - Robert P. Goldman
1
这里的答案链接是相关的 - 简而言之:确保所有的TODO标题不是顶级,并使用org-show-todo-tree - Mark
2个回答

40

C-c / torg-show-todo-tree)将当前文档重新显示为一个稀疏树,其中仅显示TODO项。或者,要仅显示已完成的项,您可以使用C-c / T DONE

有关稀疏树的更多详细信息,请参见Org手册


4
这个可以用 - 但是我怎么退出稀疏树模式呢? :) - gromgull
1
@TahirHassan,恐怕您仍然显示已完成的任务,因为您只设置了一个等级的* TODO。请设置** TODO并添加所有此类待办事项的标题。例如:* bla **TODO blabla **TODO blabla **DONE blablab - yuxuan
5
@gromgull,你需要按下 C-c C-c 以取消稀疏树的高亮显示。 - Tahir Hassan
当打开emacs时,如何将其设置为默认? @fnl - alper

26

fnl的回答很好,你可能还可以考虑归档。完成后,我不需要再看到大部分待办事项,所以我使用 C-c C-x C-s(或其它按键映射)。这可以用于Org中的任何树或子树。

此命令将指针所在的树标题移动到单独的归档文件中。如果您的原始文件是index.org,则使用此命令归档的项目将被移动到index.org_archive。移动的文件会自动获得附加元数据,例如何时进行了存档以及它最初来自哪个文件,以便您可以对已归档的项目进行研究、统计或恢复。

有两个其他的归档命令。 C-c C-x a 只是标记项目为 :ARCHIVED:。树的标题仍然显示,但制表符不会展开它,并且它不会出现在日程中。

最后一个归档命令是 C-c C-x C-A,它将归档的项目保留在同一文件中,但将归档的项目移动到单独的标题中。如果您更喜欢这种方式,这样可以使您的文件更加清晰整洁,而无需将已完成的待办事项移动到另一个文件中。

这三种方法有些类似于CSS对Web页面的工作方式:您可以使用属性在.html文件中的任何位置进行样式设置,使用样式标签将样式保持分离但仍在同一文件中,或者将其完全分开放在链接的文件中。

要在完成时自动调用org-archive-to-archive-sibling

(add-hook 'org-after-todo-state-change-hook
          (lambda () (when (equal "DONE" org-state)
                       (call-interactively #'org-archive-to-archive-sibling))))

5
当我将项目标记为完成时,能否自动调用C-c C-x C-A? - AlwaysLearning
2
我相信这是可以做到的,因为Emacs在这方面非常出色,但是在专门使用Emacs三年后,我回归了纯粹的vim。我希望有人能够回答你的问题,但是我已经离开它太久了。 - labyrinth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接