gpt4 book ai didi

regex - 组织议程正则表达式搜索类别

转载 作者:行者123 更新时间:2023-12-04 15:44:47 29 4
gpt4 key购买 nike

我喜欢使用 :CATEGORY: 来构建我的 org-mode 项目。属性,但是 org-agenda-filter-by-regexp 似乎无法识别类别(绑定(bind)到 = )。在查看相当大的 TODO 项目列表时,能够将列表缩小到匹配的类别会很有帮助。

我知道我可以使用 org-agenda-filter-by-category ( < ),但此命令必须在类别条目上执行。

有没有办法正则表达式过滤包括类别的组织议程?

下面的函数执行我想要的,但是我无法从 org-agenda 开始工作调度程序作为自定义议程命令。

(defun rnkn/org-category-match (str)
"Org Agenda match TODO headlines matching :CATEGORY: property STR."
(interactive "sCategory: ")
(org-tags-view t (concat "CATEGORY={" str "}")))

最佳答案

输入 M-x org-agenda RET m然后输入正则表达式——例如,PropertyDrawerName={regex}
上一个答案 (在原发帖人编辑问题之前)——org-element-property 的当前版本/org-element-headline-parser对属性抽屉参数使用所有大写字母:

(defun example-one ()
(interactive)
(require 'org-element)
(let* (
(org-todo-keywords '((sequence "Active(a)" "Next Action(n)" "Reference(r)" "Someday(s)" "Delegated(d)" "|" "None(N)") ))
(sample-todo (concat
"* TASKS\n\n"
"** Active [#A] smith @ drawer-one (fishing) | drawer-two (tennis). :lawlist:\n"
" DEADLINE: <2013-12-21 Sat 17:00> SCHEDULED: <2013-12-21 Sat>\n"
" :PROPERTIES:\n"
" :DRAWER-ONE: fishing\n"
" :DRAWER-TWO: tennis\n"
" :END:\n\n"
"** Next Action [#B] doe @ drawer-one (football) | drawer-two (bowling). :fred:\n"
" DEADLINE: <2013-12-22 Sun 08:30> SCHEDULED: <2013-12-22 Sun>\n"
" :PROPERTIES:\n"
" :DRAWER-ONE: football\n"
" :DRAWER-TWO: bowling\n"
" :END:\n\n"
"* EVENTS\n\n"
"** Reference [#C] john @ drawer-one (fishing) | drawer-two (sky-diving). :george:\n"
" DEADLINE: <2013-12-23 Mon 10:15> SCHEDULED: <2013-12-23 Mon>\n"
" :PROPERTIES:\n"
" :DRAWER-ONE: fishing\n"
" :DRAWER-TWO: sky-diving\n"
" :END:\n\n"
"* UNDATED\n\n"
"** Someday [#D] jane @ drawer-one (basket-ball) | drawer-two (bowling). :sam:\n"
" DEADLINE: <2013-12-24 Tues 12:00> SCHEDULED: <2013-12-24 Tues>\n"
" :PROPERTIES:\n"
" :DRAWER-ONE: basket-ball\n"
" :DRAWER-TWO: bowling\n"
" :END:")))
(if (get-buffer "foo.org")
(progn
(switch-to-buffer "foo.org")
(erase-buffer)
(delete-other-windows))
(switch-to-buffer (get-buffer-create "foo.org")))
(org-mode)
(insert sample-todo)
(goto-char (point-min))
(or (y-or-n-p (format "For this example work, you must save this buffer as a file. Proceed with example?"))
(error "Canceled."))
(write-file "~/Desktop/foo.org" t)
(let* (
(filename (buffer-file-name))
(org-agenda-files (list filename))
(org-agenda-only-exact-dates t)
(org-agenda-show-all-dates nil)
(org-deadline-warning-days 0)
(org-agenda-time-grid nil)
(org-agenda-span 'month)
(org-agenda-entry-types '(:deadline))
(month "12")
(year "2013")
(org-agenda-start-day (concat year "-" month "-" "01"))
(drawer-content (read-string "basket-ball | bowling | fishing | football | sky-diving | tennis: " nil))
(org-agenda-skip-function (lambda ()
(org-back-to-heading t)
(let* (
(element (org-element-at-point))
(drawer-one (org-element-property :DRAWER-ONE element))
(drawer-two (org-element-property :DRAWER-TWO element)))
(cond
((not (or
(equal drawer-one drawer-content)
(equal drawer-two drawer-content)))
(org-end-of-subtree t))
(t nil) )) )))
(org-agenda-list))))

(defun example-two ()
(interactive)
(let* (
(drawer (read-string "Select a property drawer (e.g., ToodledoFolder): "))
(drawer-content (read-string (concat "Select the content of the " drawer " property drawer (e.g., EVENTS): "))))
(org-tags-view nil (concat drawer "=\"" drawer-content "\"" ))))

关于regex - 组织议程正则表达式搜索类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20715106/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com