【注意】最后更新于 May 27, 2023 ,文中内容可能已过时,请谨慎使用。
借助 AI 帮助分析日程安排的也将是非常有力的工具。
如何获取 agenda 的内容,直接返回构建的视图内容字符串,而不跳转到 agenda 缓冲区 将内容投喂给 gptel 获取分析报告和建议借助 org-roam-capture 通过 tag 设定 prompt 角色,在完成 capture 时,自动对话AI。 优化 prompt 对话模板:基于 capture 模板: 内容总结
, 写作助理
基于 snippet 模板: agd
调用自定义方法,实现查询 org 内容,插入到当前 buffer 使用 org-ql 获取TODO数据实现 AI 对话 获取 org-agenda 的清单数据。在获取到数据之后,就可以为其他自定义方法提供数据支持。
例如,想要将查询到的数据,插入当前 buffer,先将列表数据以换行的方式格式化为字符串,然后插入当前位置 buffer。
还可以结合 gptel 接口,将查询的内容投喂给 AI ,实现和 AI 的对话,例如帮助分析 agenda 任务安排的合理性,获取 AI 专业的建议。
1
2
3
4
5
6
7
8
9
10
11
12
( defun org-ql-week-todo ()
( let (( result "" ))
( setq result ( org-ql-query
:select ' ( org-get-heading )
;; :from (org-agenda-files)
:where ' ( todo )))
( setq content ( s-join "\n" ( mapcar #' ( lambda ( x ) ( format "%s" x )) result )))
( message "搜索结果:\n%s" content )
)
)
( insert-org-ql-todo )
1
2
3
4
5
6
7
8
9
10
11
搜索结果:
TODO 思考最重要的事情撰写使命宣言 :blue:
TODO [#B] 拓宽思路的过程 :anki:
TODO 开发 auto-gpt emacs 插件
TODO 捷径通过 emacsclient 命令,或 ifff 集成 Auto-GPT
TODO 使用 gptel 分析 agenda 优化日程安排
TODO org-batch-store-agenda-views
TODO org-agenda-list-stuck-projects
TODO 每日安排
TODO 每周安排
TODO 快速导出 agenda 清单模板
介绍 org-agenda 内置导出工具 org-agenda 提供三个宏函数:
org-batch-agenda
: 为命令行设计,能够执行 org-agenda 模板命令 , org-batch-agenda-csv
支持导出 csv 格式org-batch-store-agenda-views
: 基于 org-agenda 模板中设置的导出文件格式,批量导出并生成相关文件。org-agenda-list-stuck-projects
: 导出阻塞的任务清单。elisp
不执行宏调用的参数;所以不支持函数类型的入参。
用户如果 emacsclient
从命令中获取 agenda 的日程清单。例如,导出7天的议程:
1
emacs -batch -l ~/.emacs -eval '(org-batch-agenda "a" org-agenda-span 7)'
如果想把 org-batch-agenda
作为常规函数调用,则必须使用单引号 '
包括。
此外:使用符号作为参数值,则必须对该符号加双引号。
Extracting Agenda Information (The Org Manual)
org-batch-agenda 的用法 1
( org-batch-agenda "a" org-agenda-span 7 )
1
2
3
4
2:00 S-42 TODO 思考最重要的事情撰写使命宣言 :@Inbox::blue:
2:00 S-42 TODO [#B] 拓宽思路的过程 :@Inbox::anki:
2:00 D-42 TODO 思考最重要的事情撰写使命宣言 :@Inbox::blue:
2:00 D-42 TODO [#B] 拓宽思路的过程 :@Inbox::anki:
1
2
3
;; (org-batch-agenda "E" org-agenda-span 7)
( setq agenda-result ( org-batch-agenda "E" org-agenda-span 7 ))
( message "每日安排: %s" agenda-result )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
每日安排:
--------重要紧急----------
habit: TODO [#A] 二象限模式[0/3] :habit:
project: TODO [#A] hackingWithSwift
--------重要不紧急---------
inbox: TODO [#B] 拓宽思路的过程 :@Inbox::anki:
inbox: TODO 开发 auto-gpt emacs 插件 :@Inbox:灵感::
inbox: TODO 捷径结合 emacsclient 命令,或使用 ifff 集成 Auto-GPT :@Inbox:灵感::
inbox: TODO 使用 gptel 分析 agenda 优化日程安排 :@Inbox::
inbox: TODO org-agenda-list-stuck-projects :@Inbox::
inbox: TODO org-batch-store-agenda-views :@Inbox::
-------紧急不重要-----------
org-batch-store-agenda-views 基于 org-agenda 模板中设置的导出文件格式,批量导出并生成相关文件。
定时导出agenda view
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
;; https://mudan.wiki/Emacs/The_Org_Manual/The_Org_Manual.html
( after! org-agenda
( setq org-agenda-exporter-settings
' (( ps-number-of-columns 2 )
( ps-landscape-mode t )
( org-agenda-add-entry-text-maxlines 0 ) ;;设置导出时,显示任务的内容最大行数
( org-agenda-prefix-format " [ ] " ) ;; 设置任务title的前缀
;;(org-agenda-with-colors nil) ; 默认值t:显示颜色
( org-agenda-remove-tags t )
;;(org-agenda-tag-filter-preset (list "+personal"))
( htmlize-output-type 'css )))
;; 定时导出agenda view.
;; (file-expand-wildcards "~/org/*.org")
;; (setq org-agenda-files (file-expand-wildcards "~/org/*.org"))
( defun progo-run-agenda-store ()
"定时导出agenda"
( message "Agenda to be exported... " )
( org-batch-store-agenda-views
org-agenda-span ( quote month )
;;org-agenda-start-day "2007-11-01"
;;org-agenda-include-diary nil
org-agenda-files ( file-expand-wildcards "~/hsg/iNotes/content-org/Orgzly/*.org" ))
( message "Agenda exported!" ))
;; 从现在开始,每5分钟:5*60s 执行一次。
;;(run-at-time nil 300 'progo-run-agenda-store)
)
org-agenda-list-stuck-projects 导出阻塞的任务清单
1
2
3
4
5
6
7
8
( org-agenda-list-stuck-projects
7 ; Next 7 days
nil ; No specific files
nil ; No custom command
"Tasks" ; Heading for first view
' ( "PROJECT" ) ; Only PROJECT todos
nil nil ; Default time range
"Projects" ) ; Heading for second view