org-super-agenda 语法说明
文章目录
【注意】最后更新于 May 27, 2023,文中内容可能已过时,请谨慎使用。
每个组选择器在 agenda 中创建一个包含它匹配的项的组,并使用这些项;任何与它不匹配的项都被传递给下一个组选择器。选择器 :discard 是一个例外:它在不创建 agenda 组的情况下持有它匹配的所有项,并将其余项传递给下一个选择器。
每个组选择器都有一个参数,参数可以是单个原子也可以是一个列表,例如 :tag 接受一个字符串或字符串列表。有些选择器是谓词,如 :deadline 或 :habit ;为了一致性,他们也接受一个参数,但它被忽略了。
注意: 由于使用哈希表实现,分组后可能不会保留项的顺序。未来的版本可能会解决这个缺点。
Keywords
:name- 可选地,设置组名头。可以是字符串;或者符号
none,在这种情况下,不会插入头文件。如果没有设置:name,则自动命名组。 :face- A face 应用于组中的项目。如果 face 是一个包含
:append t的列表,它将被追加。参见 functionadd-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-grouporg 属性集的项。通过为子树设置此属性,其中的每个项目都将按照该名称分类到议程组中,并放置到选择器为:auto-groupagenda 中)。 :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- 将不匹配任何选择器的项分组到任意组中。
- 注意,
:notgroup 选择器 创建 一个与它不匹配的项的组; 它可以和: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 DATE或after DATE, 其中 DATE 是org-time-string-to-absolute可以处理一个日期字符串 。 :effort<- 将小于(或等于)给定工作量的项目分组。参数是一个时间-持续时间字符串,例如
5或0:05表示5分钟。 :effort>- 将高于(或等于)给定工作量的项目分组。参数是一个时间-持续时间字符串,例如
5或0:05表示5分钟。 :file-path- 将缓冲区的文件名路径匹配任何给定正则表达式的项分组。
:habit- 将习惯项分组(属性为
STYLE: habit的项)。 :heading-regexp- 将标题匹配任何给定正则表达式的项分组。
:log- Group Agenda Log Mode 模式项目。参数可以是
close或closed来选择今天关闭的项目;clock或clocked选择今天已打卡的项目;changed或state选择今天待办事项状态发生变化的项目;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- 对计划的项目进行分组。参数可以是
t(匹配任何日期计划的项目)nil(匹配没有计划的项目)past(匹配过去计划的项目)today(匹配今天计划的项目)future(匹配未来计划的项目)
也可以给出参数,比如
before DATE或after DATE,其中 DATA 是一个org-time-string-to-absolute可以处理日期字符串。 :tag- 将匹配任何给定标记的项目分组。参数可以是字符串或字符串列表。
:time-grid- 对出现在时间网格上的项目进行分组。
:todo- 将匹配给定的任意一个关键字的项分组。参数可以是字符串或字符串列表,也可以是
t来匹配任何关键字,或者nil来只匹配非待办项。
文章作者 iTBoyer
上次更新 2023-05-27