首页 > 解决方案 > 如何正则表达式搜索标题以创建自定义议程?

问题描述

我正在尝试获得一个自定义议程设置,该设置显示以 cookie 开头的顶级标题([/])

(setq org-agenda-custom-commands
      '(("p" "Custom daily agenda"
         ((search "\[[[:digit:]]*/[[:digit:]]*\]" ((org-agenda-overriding-header "Projects"))))
         ((org-agenda-files '("~/Dropbox/org/todo.org"))))))

todo.org 包含:

* [/] Project A
* [1/2] Project B
** DONE task A
** TODO task B

议程缓冲区显示为空。它应该显示

Projects
todo: [/] Project A
todo: [1/2] Project B

标签: emacsorg-mode

解决方案


由于您使用正则表达式进行搜索,因此您的搜索字符串必须用大括号括起来(您可以在 function 的帮助中找到这些字符串的语法详细信息org-search-view)。您还应该在正则表达式字符串中使用两个双反斜杠而不是一个来引用文字方括号:

(setq org-agenda-custom-commands
      '(("p" "Custom daily agenda"
         ((search "{\\[[[:digit:]]*/[[:digit:]]*\\]}" ((org-agenda-overriding-header "Projects"))))
         ((org-agenda-files '("~/Dropbox/org/todo.org"))))))

通过此更改,按下p会导致*Org Agenda*缓冲区显示:

Projects
  todo:       [/] Project A
  todo:       [1/2] Project B

推荐阅读