Org文件以指定的目录深度打开 startup:show2levels

org startup的四个选项

访问org文件,设置初始的文件目录展示深度,org-manual 提供了四个选项:

#+STARTUP: overview top-level headlines only
#+STARTUP: content all headlines
#+STARTUP: showall no folding of any entries
#+STARTUP: showeverything show even drawer contents

分别在2.2.2 Initial visibility16.8 Summary of In-Buffer Settings 有简要的介绍。

其中比较趁手的是前两项 #+STARTUP: overview #+STARTUP: content 分别只展示一级目录和展示全部的目录。而后面的两项将正文全部展开,不仅会给人铺面而来的压迫感,也不能在第一时间呈现重点。

对比前两项 overview 与 content。overview只展示第一级heading,信息量太少,打开满满的一页文本,overview只占前面几行,有点过分单薄。而 content 全部展开 heading,呈现的琐碎细节又太多。

妥协的解决方案

因此作为妥协的方案,长期沿用的策略是设置 #+STARTUP: overview, 进去org文件之后,在C-2 S-tab 展示至二级深度,阅读其大纲结构。只有当着手深入阅读的时候,再查看三级乃至更深层级的heading。

将overview作为所有org文件的默认展示方式,从配置中添加:

(setq org-startup-folded 'overview)

doom-emacs的默认值是 “everything”。

颇为遗憾的是,竟然不能从startup中指定至特定的深度,比如更有参考价值的二级深度。从SO上提出这个问题,等了两年也没有收到答复。

因此就一直沿用 overview + 手动展开到二级目录的工作流。

意外之喜

怎料到,今天意外触发 value org-startup-options ,看到下面这几行:

org-startup-options is a variable defined in org.el.

Value
  ....
 ("showall" org-startup-folded nil)
 ("show2levels" org-startup-folded show2levels)
 ("show3levels" org-startup-folded show3levels)
 ("show4levels" org-startup-folded show4levels)
 ("show5levels" org-startup-folded show5levels)

立即尝试,对效果很是满意。

然后从配置中将org的startup展示层级重新修改为::

(setq org-startup-folded 'show2levels)

我的工作流感觉要起飞了,哈哈😊

8 个赞