【发布时间】:2014-08-06 13:33:27
【问题描述】:
我使用 org-mode 在多个文件中处理我的任务和项目。
在每周议程中,可以使用<TAB> 或<RET> 跳转到每个 TODO 条目的位置。如果目标文件之前未打开,则会加载该文件并将光标设置为正确的标题并展开整个文档,包括抽屉。
我非常希望只看到一棵稀疏树,除了正确的标题折叠外,其他所有内容都折叠起来(子树的可见性无关紧要)。
可以通过使用C-u <TAB 循环全局可见性来折叠整个树,但是我必须再次找到标题。
我知道我可以通过缩小缓冲区来隐藏其余部分,如下所述: Emacs, How can I display only current task and hide others in org-mode? 但后来我失去了上下文(父标题,轻松访问兄弟姐妹)并且抽屉仍然打开。
理想情况下,我希望有一个显示以下内容的命令:
- 顶级标题
- 当前标题,以及它的所有父级,直到顶层
- 当前标题的孩子
编辑:
张贴的函数user3173715 的略微修改版本似乎可以解决问题:
(defun org-show-current-heading-tidily ()
"Show next entry, keeping other entries closed."
(if (save-excursion (end-of-line) (outline-invisible-p))
(progn (org-show-entry) (show-children))
(outline-back-to-heading)
(unless (and (bolp) (org-on-heading-p))
(org-up-heading-safe)
(hide-subtree)
(error "Boundary reached"))
(org-overview)
(org-reveal t)
(org-show-entry)
(show-children)))
【问题讨论】:
-
不是一个完整的答案,但请查看以下变量,看看它们是否适合您的需求:
org-startup-folded、org-startup-options和org-agenda-inhibit-startup。 -
使用
org-agenda-inhibit-startup切换它几乎可以满足我的要求,谢谢!奇怪的是,标题的兄弟节点被隐藏了,只显示了第一个子节点,但这绝对是一个改进! -
在不修改源代码的情况下,折叠的选项数量有限——手册只有少数交互式命令:gnu.org/software/emacs/manual/html_node/org/… 缩小可见范围的另一个选项是执行标签或关键字搜索:orgmode.org/worg/org-tutorials/advanced-searching.html 成功修改源代码以创建自定义视图的乐趣是持久的,但如果您真正感兴趣的话,请准备好花费大量时间。
-
这非常有用,但它隐藏了上下文。我想显示当前任务的所有祖先,它们的属性(折叠,但显示),以及兄弟姐妹。这可能吗?