You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Org Agenda视图显示明日及指定天数内的截止任务?

分析你的Org Agenda自定义命令问题&修正方案

我来帮你梳理这段代码里的问题,再给你正确的写法和n天内截止任务的筛选方法~

原代码存在的核心问题

1. 字符串与引号格式错误

你把查询条件拆成了多个零散的字符串(比如"+TODO={NEXT}+DEADLINE>="<Today>"),Lisp语法要求每个完整的查询规则必须用一对引号包裹,而且日期占位符<today>要放在查询字符串内部,不能单独拆分。另外,TODO={NEXT}可以简化为TODO=NEXT,Org的标签查询支持直接这样写,更简洁。

2. 日期语法完全错误

Org Agenda的相对日期有固定语法:<today>代表今天、<+1d>代表明天、<+2d>代表后天,以此类推。你写的"<Today>"+1不符合任何Org查询规则,会被当成无效条件。

3. 括号嵌套混乱

每个tags-todo子命令的结构应该是(tags-todo "查询规则" (选项1) (选项2)),你在选项外面多套了一层不必要的括号(比如( (org-agenda-sorting-strategy ...)),这会直接导致Lisp解析失败。

4. 查询逻辑偏差

你写的DEADLINE>="<Today>"会匹配所有截止日期在今天之后的任务,但你想要的是「今日截止」的任务,应该用DEADLINE="<today>"来精准匹配当天截止的内容。

修正后的完整代码

(setq org-agenda-custom-commands
      '(("d" "Deadlined tasks"
         ((tags-todo "+TODO=NEXT+DEADLINE=\"<today>\""
                     (org-agenda-overriding-header "Deadline today")
                     (org-agenda-sorting-strategy '(scheduled-down)))
          (tags-todo "+TODO=NEXT+DEADLINE=\"<+1d>\""
                     (org-agenda-overriding-header "Deadline tomorrow")
                     (org-agenda-sorting-strategy '(scheduled-down)))
          (tags-todo "+TODO=NEXT+DEADLINE>=\"<today>\"&DEADLINE<=\"<+2d>\""
                     (org-agenda-overriding-header "Deadline in next 2 days")
                     (org-agenda-sorting-strategy '(scheduled-down)))))))

如何筛选n天内截止的任务

要灵活筛选n天内的截止任务,只需调整查询规则中的日期范围:

  • 包含今天在内的n天内:使用"+TODO=NEXT+DEADLINE>=\"<today-1d>\"&DEADLINE<=\"<+nd>\""
    这里<today-1d>代表昨天,确保不会漏掉今天截止的任务;<+nd>替换成具体天数,比如n=3就写<+3d>。
  • 从明天开始的n天内:去掉昨天的范围,用"+TODO=NEXT+DEADLINE>=\"<today>\"&DEADLINE<=\"<+nd>\""

内容的提问来源于stack exchange,提问作者myotis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:51:17