24.6 大纲次要模式

大纲次要模式(Outline minor mode)是一种缓冲区局部次要模式,它会隐藏缓冲区的部分内容,仅保留标题行可见。 该次要模式可与其他主模式配合使用 (see Outline Minor Mode in the Emacs Manual)。

定义哪些行为标题行有两种方式:通过变量 outline-regexpoutline-search-function

Variable: outline-regexp

该变量是一个正则表达式。 任何行首能匹配此正则表达式的行都会被视为标题行。 在行内(而非左边缘)开始的匹配不计入有效匹配。

Variable: outline-search-function

另一种方式是,当无法编写匹配标题行的正则表达式时, 可以定义一个函数来辅助大纲次要模式查找标题行。

变量 outline-search-function 指定该函数,它接受四个参数: boundmovebackwardlooking-at。 该函数完成两项任务:匹配当前标题行,以及查找下一个或上一个标题行。 若参数 looking-at 为非 nil,则当光标位于大纲标题行开头时, 函数应返回非 nil。 若参数 looking-atnil,则使用前三个参数。 参数 bound 是一个缓冲区位置,作为搜索边界。 找到的匹配结果不得超出该位置。 若该值为 nil,则表示搜索至缓冲区可访问部分的末尾。 若参数 move 为非 nil,则搜索失败时应移动至搜索边界并返回 nil。 若参数 backward 为非 nil,则该函数应向后搜索上一个标题行。

Variable: outline-level

该变量是一个无参函数, 应返回当前标题的层级。 无论你使用 outline-regexp 还是 outline-search-function, 该函数都是必需的。

若 Emacs 编译时包含 tree-sitter 支持, 当主模式设置了以下变量时,Emacs 可自动启用大纲次要模式。

Variable: treesit-outline-predicate

该变量用于指示 Emacs 如何查找包含大纲标题的行。 它应为一个谓词函数,用于匹配标题行上的节点。


emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike