如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选


如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

沉浸在org-mode之中阅读或者写作的时候,常常需要参阅文章的大纲结构,以获悉当前坐标在宏观视图中的位置,更好地把握阅读进度,整体理解,以及备忘提醒等。
Org-mode似乎对此提供了完美的解决方法,就是轮巡。

 C-n S(shift)-tab 展示不同深度的目录
 S-tab或者C-u Tab轮巡

长期以来,也始终坚持上述的解决方案,比如 C-2 S tab展示当前文章的2级深度的目录。

如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

然而,该方法的弊端也显著,明显的干扰到当前的焦点和注意力。就类似于,在乡间开车迷路之际,司机一跃飞到万米高空,俯瞰地形地势。不幸的是,虽然有了大局图,司机可能再也找不到停在地面上的车辆了。上述轮巡的方法,展开整体树形结构的同时,也令用户失去当前的焦点,不得不用set-mark等方法再回去。但是,即使顺利回到原点,它在整个窗口中的位置也会变更,倘若原先在上半部分,再回来很可能到了下半部分。

如此跳来跳去,徒然增加大脑负担。因而,不得不尽量不去查看大纲视图,并且慢慢养成习惯。

打破既定习惯的冲动产生于重新使用typora之后,它的大纲视图,好像突然释放了大脑刻意记忆负担,用起来轻松惬意,激发熊熊的阅读和写作欲望。

如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

如此看来,大纲视图必不可少,只是org-mode的轮巡方法并非良策。

发帖求助后, Kinney 给了imenu-list的好建议。

org文件怎样在侧边栏展示大纲? 如果能与右侧的阅读进度同步就太好了,像typora那样。 [image] 搜到这个包 是正确的解决方案吗? 它依赖super-agenda(没敢试,担心弄乱绑定键)


方案一 imenu-list

imenu-list 正能解决我的需求,几乎完美的解决方案,比之前尝试的org-sidebar更合适。

如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

imenu-list 内使用Space和Enter键自由自在的阅读文章

: goto entry under cursor, or toggle case-folding. : display entry under cursor, but *Ilist* buffer remains current

还是有些不能满足需求的地方:

  1. 目录树默认expand,得逐个将其collapse。
  2. 大纲视图并不会自动跟随文章
  3. 大纲视图的buffer打开后,主buffer的文章空间挤压,须扩大emacs整个窗口,与此同时,却会挤压浏览器的空间。

但是这三点并不影响imenu-list的使用。

如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

方案二 Org-Sidebar

保持文章的完整,介绍较差的方案 org-sidebar

如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

org-sidebar

该方案把主buffer作为indirect-subtreebuffer,仅仅展示从大纲中点选的部分内容,读完之后,还要回到大纲中导航。

这不是我想要的,因此马上就删掉了。

方案三 启发思路的方案

Occur命令:
大纲视图能用occur命令展示,调用occur之后,输入^*+,就看到了展示在底部的大纲视图:

如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

不足之处较多,比如将窗口占去一半。

agenda-capture-refile的跳转

或者使用capture-refile的跳转命令:

(C-u C-c C-w) 跳转到特定的heading

如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

似乎好一点,因为是动态的。

底部的imenu-buffer

从imenu-buffer文档中看到,也能展示在底部,仅需要调整参数 imenu-list-position`。

imenu-list-position: should beleft,right,aboveorbelow` , to display the window at the left, right, top or bottom of the frame.


如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

此时此刻,我终于有点开窍了,既然大纲结构展示在底部,大脑似乎并不方案,那么大纲结构就不要安装任何新的包,实现起来一点也不难。

方案四 mini-buffer内的regex查询

一番折腾之后,大概明白了“潜意识”内对大纲结构的需求:

  1. 不干扰当前的焦点(这是首要需求)
  2. 灵活的调整展示深度,比如想要二级深度就给二级深度,想要三级就给三级深度,不必再对默认的展示的大纲做调整
  3. 最好不要压缩主buffer的空间,避免调整emacs窗口的尺寸却影响到其他应用;
  4. 灵活性,呼之即来,挥之即去。

最终的解决方案是最高频的按键C-s (swiper-search)

一级目录深度: Swiper+ ^*

如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

二级目录深度: Swiper + ^*{1,2}

如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

三级目录深度: Swiper + ^*{1,3}

如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

展示全部深度的目录:Swiper + ^*+

如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

由此,Swiper的regex搜索查询模式,足够满足对outline的四点需求,并帮助思维拓展到更广阔之处。比如用rg查看整个项目的一级目录结构。

如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选


Windows系统上安装Emacs请参阅文章:

Windows上畅行无碍玩转Emacs27.1的11个步骤

如何高效阅读一本书?大纲视图的4类7种方案及推荐不二之选

本文隶属的Github项目请参阅

展开阅读全文

页面更新:2024-05-20

标签:视图   大纲   方案   高效   深度   大脑   命令   解决方案   窗口   需求   结构   目录   焦点   方法   文章

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top