Emacs组织模式:如何同时过滤标签和todo状态?
我正在使用组织模式的议程功能(键盘快捷键:C-CA),以便对我的所有任务生成不同的排序视图。我通过定义变量Emacs组织模式:如何同时过滤标签和todo状态?,emacs,org-mode,Emacs,Org Mode,我正在使用组织模式的议程功能(键盘快捷键:C-CA),以便对我的所有任务生成不同的排序视图。我通过定义变量org agenda custom commands来实现这一点。如果我的init文件中有以下代码: (setq组织议程自定义命令'( (“p”“项目”标签“项目”) )) 我可以通过使用快捷方式C-cap筛选出标记为“PROJECT”的任务。同样,我可以使用以下代码: (setq组织议程自定义命令'( (“t”待完成任务“标记todo”todo=\“todo\”) )) 使用快捷方式C-C
org agenda custom commands
来实现这一点。如果我的init文件中有以下代码:
(setq组织议程自定义命令'(
(“p”“项目”标签“项目”)
))
我可以通过使用快捷方式C-cap
筛选出标记为“PROJECT”的任务。同样,我可以使用以下代码:
(setq组织议程自定义命令'(
(“t”待完成任务“标记todo”todo=\“todo\”)
))
使用快捷方式C-C a t
筛选出todo状态等于todo
的任务。我的问题是,如何定义org aganda自定义命令
,以筛选出todo状态等于todo
且标记等于PROJECT
的任务
提前感谢:)标签搜索视图名称不正确。它实际上搜索标记和属性<代码>标记待办事项添加仅与待办事项标题匹配的额外条件。使用“+”表示需要条件(使用“-”表示禁止)。因此
+PROJECT+TODO=\“TODO\”
将标题与标记:PROJECT:
和TODO关键字TODO
匹配。放入自定义命令看起来像
(setq org-agenda-custom-commands
'(("p" "List Non-done projects"
tags "+PROJECT+TODO=\"TODO\"")))
您是否能够使用手册中提到的高级搜索技术获得所需的视图?如果是这样的话,那么问题就在于找出需要传递给相关函数的参数——例如,
org tags view
。您可能还对org agenda skip函数感兴趣
:您可能应该熟悉函数名称,而不是使用键盘快捷键来引用函数。不,我无法获得所需的视图。这是我的问题。如何创建一个视图来筛选出状态为TODO和tag PROJECT的任务?请尝试在*Scratch*
缓冲区中对此进行评估,看看这是否会生成您要查找的结果类型:(org tags view t“PROJECT”)
函数org tags view
中的第一个参数是是否将搜索限制为仅搜索TODO条目——第二个参数是要匹配的内容。您可以通过将光标放在右括号的右侧并键入C-x C-e
来计算表达式,也可以键入M-x eval expression RET(org tags view t“project”)RET
谢谢,它起了作用:)但是:(1)您的答案不是一种操纵org agenda自定义命令的方法,这就是我想做的。是否可以将标签
和待处理标签
组合在一起?以下代码不起作用:(setq org agenda custom commands'(“x”列出未完成的项目“tags todo”todo=\“done\”tags“PROJECT”)
)(2)在哪里可以阅读org tags view
变量?键入C-hv-org-tags-view
会导致“不匹配”。为什么?org tags view
是一个函数,而不是一个变量。您可以通过C-h f org tags view
`查看帮助信息,谢谢,答案非常翔实:)但是为什么这里有一个asymetri。我们必须编写TODO=\“TODO\”
,但我们不必编写tag=\“PROJECT\”
。那会更合乎逻辑,不是吗?我是否可以使用标记
搜索筛选出在非标题文本中只有一个特殊单词的任务,而不仅仅是标记中的文本?我想默认的想法是匹配标记,并匹配您必须提供属性的任何其他内容;你的说法似乎更符合逻辑。。为了匹配非标题/属性文本,可能使用搜索
命令会更好?如果我将代码中的标记
与标记todo
交换,代码是否仍能正常工作?我想会(标记todo
仅限于搜索todo标题)。只有一种方法可以确定……还有一种快捷语法是标记“PROJECT/TODO”
,它与标记“+PROJECT+TODO=\“TODO\”
相同。