如何在组织模式下还原稀疏树视图?

ben*_*hsu 36 emacs org-mode

我正在学习组织模式,刚刚发现稀疏树木(Cc/t及其亲属).我怎样才能回到我的组织文件的原始,非稀疏的视图?

我通过反复试验发现TAB循环顶级节点有效,有没有更好的方法?

jer*_*ahd 43

C-c C-c应该清除稀疏树隐藏和突出显示,但据我所知,你不能只回到你的"最后一个视图".如果要返回全视图,请使用Shift-Tab循环所有条目.

  • 这应该在用户手册中提及。谢谢! (4认同)

小智 7

所以,现在是 2018 年,(AFAIK)这个功能仍然不存在。

到目前为止,我发现的最佳解决方法是创建一个间接缓冲区(Cx 4 c),然后在其中运行 org-sparse-tree。原始窗口不受影响,因此您可以保留视图,对间接缓冲区的更改将更新原始缓冲区(反之亦然)。完成后,您只需关闭间接缓冲区。

  • 现在已经是 2020 年了,这似乎是迄今为止最好的解决方法。 (2认同)

小智 7

Ben K. 的方向是正确的。间接缓冲区是 emacs 最强大的功能之一。

这个函数做了我期望org-show-todo-tree做的事情:创建一个新的缓冲区来显示未完成的 TODO 项目,不要搞乱我的组织文件的树状态,并清除不必要的突出显示。

(defun org-todo-buffer ()
  "Create new indirect buffer with sparse tree of undone TODO items"
  (interactive)
  (clone-indirect-buffer "*org TODO undone*" t)
  (org-show-todo-tree nil) ; mimics interactive usage
  (org-remove-occur-highlights)
)
Run Code Online (Sandbox Code Playgroud)

在这个新缓冲区中,您可以更改组织文件中反映的 TODO 项目状态,并且在完成后可以简单地终止间接缓冲区。


Roy*_*ove 6

我通常只运行org-mode似乎让我回到第一个的命令。


ahn*_*kle 6

很晚才谈到这一点,我注意到选择所有标签然后取消突出显示/取消缩小范围似乎是正确的做法。

C-c \ *
C-c C-c
Run Code Online (Sandbox Code Playgroud)


bzg*_*bzg 5

在任何地方进行 TAB 循环只会隐藏由 突出显示的条目org-sparse-tree

要删除覆盖,您需要实际编辑缓冲区。