Outline mode

Emacs 对于结构化文档(如 HTML 文档)有个非常舒服的 mode 就是 outline mode ,他可以隐藏不必要的细节,只显示出骨干以及你关心的部分,让你在写 大文档的时候更加轻松。不过通常各种结构化文档都有自己专门的 major mode ,所以通常 outline minor mode 比 outline mode 更常用。

outline minor mode 默认的快捷键前缀是 C-c @ ,按起来确实非常麻烦,可以 把他改成其他的,比如不常用的 C-o

下面是一些常用的功能,其他的功能可以查看 Emacs 的 info 文档,或者,如 果你启用了菜单栏,就会发现菜单栏里面多了一项 Outline 菜单,里面也列出 了各种操作。

Hide Sublevels
C-o C-q 可以隐藏文档的所有子结构,只剩下最上面一层。
Show All
C-o C-a 可以显示所有结构,完全恢复文档本来的样子。
Hide Body
C-o C-t 可以隐藏文档的所有 Entry ,只显示骨干(例如,在 Muse 文档里面,只显示各级标题,而标题下面的内容都被隐藏起来)。
Hide Entry
C-o C-c 可以隐藏当前的 Entry 部分。
Show Entry
C-o C-e 可以显示出当前的 Entry 部分。
Hide Leaves
C-o C-l 可以隐藏子树的所有 Entry 部分,Hide Body 就相当 于对文档树的根进行了 Hide Leaves 操作。
Show Branches
C-o C-k 可以把子树及一下的骨干结构显示出来。这和上者似 乎没有什么区别,其实 Hide 和 Show 还是有区别的,例如,如果某些子树以下 的结构是隐藏着的,那么用 Hide Leaves 就不会让他们显示出来,类似的,如果 某些 Entry 是显示着的,那么 Show Branches 就不会把他们隐藏起来。
Hide Subtree
C-o C-d 可以把子树整个隐藏起来,Hide Sublevels 就相当于 对文档树的根执行了 Hide Subtree 操作。
Show Subtree
C-o C-s 可以把子树整个展开。Show All 就相当于对文档树的 根执行了 Show Subtree 操作。
Next
C-o C-n 用于移动到下一个可见标题。
Previous
C-o C-p 用于移动到上一个可见标题。

虽然设定了前缀为 C-o ,但是仍然比较难按,比如 C-o C-c ,要分别用左手和 右手按下 Control 键,速度很慢,反正原本以 C-o 作为前缀的命令是没有的, 还不如把常用的那几个操作绑定为一个字母的按键, C-o c 还是比 C-o C-c 要 好按一点:

其实有一些比如 C-o C-l 因为两次 Control 键都会是左边的手指头,所以一直 按着 Control 键不放下把这个序列按完更方便一些,这里仍然两者都定义了, 这样至少可以避免无意按错的情况。