组织议程正则表达式搜索类别
发布时间:2020-12-13 21:53:47 所属栏目:百科 来源:网络整理
导读:我喜欢使用:CATEGORY:属性构建我的组织模式项目,但是类似似乎不被org-agenda-filter-by- regexp(绑定到=)识别.查看相当大的TODO项目列表时,能够将列表缩小到匹配的类别会很有帮助. 我知道我可以使用org-agenda-filter-by-category(),但必须在类别条目上执
我喜欢使用:CATEGORY:属性构建我的组织模式项目,但是类似似乎不被org-agenda-filter-by-
regexp(绑定到=)识别.查看相当大的TODO项目列表时,能够将列表缩小到匹配的类别会很有帮助.
我知道我可以使用org-agenda-filter-by-category(<),但必须在类别条目上执行此命令. 有没有办法用regexp过滤组织议程,包括类别? 下面的功能执行我想要的功能,但是我无法将其作为自定义议程命令从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 "* TASKSnn" "** 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: fishingn" " :DRAWER-TWO: tennisn" " :END:nn" "** 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: footballn" " :DRAWER-TWO: bowlingn" " :END:nn" "* EVENTSnn" "** 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: fishingn" " :DRAWER-TWO: sky-divingn" " :END:nn" "* UNDATEDnn" "** 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-balln" " :DRAWER-TWO: bowlingn" " :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 """ )))) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |