以自然阅读顺序浏览 Emacs/Unix 信息

Navigating Emacs/Unix info in natural reading order

Emacs/Unix info 是一个很好的文档结构,这种格式有重要的信息。

导航是使用树形导航完成的,例如 upnext-on-same-level a.s.o。

这意味着如果不观察树结构和 "natural next" 节点所在的位置(向上一层,然后是下一层,从上一节转到下一章介绍...)

或者有没有一个function/key总是会把我带到下一个节点去阅读?我认为这将是树的预序遍历。

有一个交互式 Elisp 功能:

(Info-next-preorder)

(默认情况下未绑定到键)这样做:

Go to the next subnode or the next node, or go up a level.

也许这个问题属于 (emacs)...

稍稍探索一下 Emacs 菜单就会发现 Info->Forward Node 运行 Info-forward-node,这似乎完全符合要求。默认绑定到]

Go forward one node, considering all nodes as forming one sequence.

类似地 Info-backward-node 也存在并绑定到 [

我不知道 所建议的 Info-next-preorder 的区别,因为关于这两个函数的文档是有限的。

你描述的行为似乎正是我通过使用得到的行为 space 栏在信息中移动。 info-scroll-up(绑定到 space)的文档说

Scroll one screenful forward in Info, considering all nodes as one sequence. Once you scroll far enough in a node that its menu appears on the screen but after point, the next scroll moves into its first subnode, unless ‘Info-scroll-prefer-subnodes’ is nil.

When you scroll past the end of a node, that goes to the next node if ‘Info-scroll-prefer-subnodes’ is non-nil and to the first subnode otherwise; if this node has no successor, it moves to the parent node’s successor, and so on. If ‘Info-scroll-prefer-subnodes’ is non-nil and point is inside the menu of a node, it moves to subnode indicated by the following menu item. (That case won’t normally result from this command, but can happen in other ways.)

@TimX 提供了答案:使用 SPC(或 DEL,用于向后)。

此外,如果您使用 Icicles,那么您可以只对 与您的完成输入匹配的节点执行相同的操作 for g(命令Info-goto-node):按书本顺序在这些节点之间移动。

默认情况下,候选节点补全是按字母顺序排列的,这样便于识别,但通常不适合循环。 但是,无论何时您使用一个接受您的输入并完成的命令,Icicles 都可以让您以各种方式快速对完成候选进行排序(使用 C-,)。

对于 g,Info 中可能的排序顺序之一是 in book order。只需使用 C-, 并选择候选 in book order 即可更改为此顺序。

您也可以获得此行为 ,而无需 使用 C-, 更改排序顺序,对于您想要按书本顺序导航节点的特定情况,将它们限制在本书其余部分中的节点,即那些跟在当前节点之后的节点。对于这个用例,只需提供一个否定前缀 arg:C-- g。 (本例中第一个候选节点为..,即向上父节点。)

(要在作为完成候选的节点之间循环,只需在完成期间重复使用 C-down。要乱序访问任何特定节点 完成时,用down循环到*Completions*,然后用C-RET 来选择它 - 或者只使用 C-mouse-2*Completions* 中选择它。)