每个组选择器在 agenda 中创建一个包含它匹配的项的组,并使用这些项;任何与它不匹配的项都被传递给下一个组选择器。选择器 :discard 是一个例外:它在不创建 agenda 组的情况下持有它匹配的所有项,并将其余项传递给下一个选择器。

每个组选择器都有一个参数,参数可以是单个原子也可以是一个列表,例如 :tag 接受一个字符串或字符串列表。有些选择器是谓词,如 :deadline:habit ;为了一致性,他们也接受一个参数,但它被忽略了。

注意: 由于使用哈希表实现,分组后可能不会保留项的顺序。未来的版本可能会解决这个缺点。

Keywords

:name
可选地,设置组名头。可以是字符串;或者符号 none ,在这种情况下,不会插入头文件。如果没有设置 :name ,则自动命名组。
:face
A face 应用于组中的项目。如果 face 是一个包含 :append t 的列表,它将被追加。参见 function add-face-text-property
:transformer
用于在显示前,转换项字符串。用一个参数、项字符串或一个 sexp 调用的函数,在这种情况下,项字符串绑定到 it

Special selectors

每个选择器都需要一个参数,即使它只是 t ,例如 :anything:auto-category:auto-group:discard

:and
将匹配所有选择器的项分组到一个或多个选项中。
:anything
选择每一个项目,无论什么。这可能是最有用的 :discard ,因为它实际上不测试任何东西,所以它比,例如 :regexp "." ,它必须获取每个项目的条目文本。
:auto-category
这将自动按类别对项目进行分组(通常是其所在的文件名,没有 .org 后缀)。
:auto-dir-name
这将根据源缓冲区的目录名自动对项进行分组。
:auto-group
这将选择具有 agenda-group org 属性集的项。通过为子树设置此属性,其中的每个项目都将按照该名称分类到议程组中,并放置到选择器为 :auto-group agenda 中)。
:auto-map
当将每个项作为来自 agenda 缓冲区的字符串应用到给定函数时,它会根据返回的值自动对项进行分组)。该函数应该返回一个字符串,用作分组键和其组的头。
:auto-outline-path
这将根据项目的大纲路径层次结构自动分组,如 计划/接管宇宙/接管月球
:auto-parent
这将自动按父标题对项目进行分组。这非常方便,特别是如果您按项目分层地对任务进行分组,并使用议程限制将议程限制在一个子树中。
:auto-planning
这将自动按照项目最早的计划日期或截止日期对项目进行分组,并根据变量 org-super-agenda-date-format 进行格式化。
:auto-priority
这将自动按优先级对项目进行分组。
:auto-property
这将根据给定属性的值自动对项进行分组
:auto-tags
这将自动根据所有标签对项目进行分组(即,具有完全相同标签的项目,无论以何种顺序,都将被分组在一起)。
:auto-todo
这将自动根据待办事项关键字对项目进行分组。
:auto-ts
这将自动按条目中任何位置的最新时间戳的日期对条目进行分组,并根据变量 org-super-agenda-date-format 进行格式化。对于参数 reverse ,组按最新优先排序。
:discard
丢弃匹配选择器的项。在此之后处理的任何组都不会看到丢弃的项。您可以在组列表的开头或结尾使用它,以便缩小项目列表(与 :not 结合使用),或者排除您不感兴趣的项目。
:not
将不匹配任何选择器的项分组到任意组中。
  • 注意, :not group 选择器 创建 一个与它不匹配的项的组; 它可以和 :discard 连用来丢弃不匹配的项。例如, (:discard (:not (:priority "A")))) 作为第一个选择器意味着只有优先级为 A 的项目会出现在议程中,而 (:discard (:priority "C")) 意味着任何优先级为 C 的项目都不会出现在议程中。
:order
设置顺序部分的数字将显示在 agenda 中,最低的数字首先。默认为 0
:order-multi
一次设置多个组的顺序,如 (:order-multi (2 (groupA) (groupB) ...)) ,将这些组的顺序设置为 2。
:take
取组中的前n个事项。如果n是负的,取最后n项。例如, (:take (-3 group)) 将从组中取出最后3个项目。剩余的项被丢弃。注意:不能保证保留来自group的条目的顺序,因此 :take 可能并不总是显示期望的条目。

Normal selectors

这些选择器单独接受一个参数,或者接受列表中的多个参数。

:category
将匹配任何给定类别的项目分组。参数可以是字符串或字符串列表。
:children
选择任何有子条目的项。参数可以是 t 来匹配,如果它有任何子参数,可以是 nil 来匹配,如果它有任何带有 to-do 关键字的子参数,可以是 todo 来匹配,如果它有带有某些 to-do 关键字的子参数,可以是一个字符串来匹配。您可以使用它来选择作为项目顶级标题的项。请注意,在非每日/每周视图中,由于其递归性质,这可能非常慢。
:date
对具有关联日期的项进行分组。参数可以是 t 匹配具有任何日期的项, nil 匹配没有日期的项,或 today 匹配具有今天日期的项。与 ts-date 日期文本属性进行匹配。
:deadline
对有截止日期的项目进行分组。参数可以是 t (匹配任意截止日期的项)、 nil (匹配没有截止日期的项)、 past (匹配过去截止日期的项)、 today (匹配截止日期为今天的项)或 future (匹配未来截止日期的项)。也可以给出参数,比如 before DATEafter DATE , 其中 DATE 是 org-time-string-to-absolute 可以处理一个日期字符串 。
:effort<
将小于(或等于)给定工作量的项目分组。参数是一个时间-持续时间字符串,例如 50:05 表示5分钟。
:effort>
将高于(或等于)给定工作量的项目分组。参数是一个时间-持续时间字符串,例如 50:05 表示5分钟。
:file-path
将缓冲区的文件名路径匹配任何给定正则表达式的项分组。
:habit
将习惯项分组(属性为 STYLE: habit 的项)。
:heading-regexp
将标题匹配任何给定正则表达式的项分组。
:log
Group Agenda Log Mode 模式项目。参数可以是
  1. closeclosed 来选择今天关闭的项目;
  2. clockclocked 选择今天已打卡的项目;
  3. changedstate 选择今天待办事项状态发生变化的项目;
  4. t 选择任何已记录的项,或 nil 选择任何未记录 non-logged 的项。

(请注意,这些项目也可以由 :time-grid 选择器匹配,所以如果您希望这些项目在它们自己的组中显示,您可能需要在包含 :time-grid 选择器的组之前选择它们。

:pred
如果任何给定的谓词函数在调用时返回 non-nil,并且每个项目都是来 agenda 缓冲区字符串,则将项目分组的。
:priority
将匹配任何给定优先级的项目分组。参数可以是一个字符串或字符串列表,它应该是优先级字母,例如 A
:priority>
将高于给定优先级的项目分组,例如 C
:priority>=
将高于或等于给定优先级的项分组,例如 B
:priority<
将低于给定优先级的项目分组,例如 A
:priority<=
将低于或等于给定优先级的项目分组,例如 B
:property
使用属性对项进行分组,值可选。参数可以是属性名字符串,也可以是属性名字符串和用于测试值的值字符串或谓词的列表。
:regexp
将匹配任何给定正则表达式的项分组。
:scheduled
对计划的项目进行分组。参数可以是
  1. t (匹配任何日期计划的项目)
  2. nil (匹配没有计划的项目)
  3. past (匹配过去计划的项目)
  4. today (匹配今天计划的项目)
  5. future (匹配未来计划的项目)

也可以给出参数,比如 before DATEafter DATE ,其中 DATA 是一个 org-time-string-to-absolute 可以处理日期字符串。

:tag
将匹配任何给定标记的项目分组。参数可以是字符串或字符串列表。
:time-grid
对出现在时间网格上的项目进行分组。
:todo
将匹配给定的任意一个关键字的项分组。参数可以是字符串或字符串列表,也可以是 t 来匹配任何关键字,或者 nil 来只匹配非待办项。