加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间: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 """ ))))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读