在 elisp 中调用 org-mode 自定义命令

Car*_*eri 4 emacs elisp org-mode

Org-mode 允许通过自定义org-agenda-custom-commands来定义自定义命令。做这样的事情:

(setq org-agenda-custom-commands
  '(("pb" "Bugs "
      (
       (todo "KNOWNCAUSE")
       (todo "BUG")
       (todo "REPORT")
      )
    ((org-agenda-files (list projects-dir))))
Run Code Online (Sandbox Code Playgroud)

将允许我按Cc a调用议程调度程序,然后如果我按pb ,它将按文件夹(project-dirs)和状态过滤我的待办事项。

是否有一个 elisp 函数可以直接调用org-agenda-custom-commands 中定义的(特定)自定义命令?

改写:我想要一个 elisp 函数,如果调用它会显示我过滤的待办事项,就像现在按Cc apb一样。

and*_*vin 7

我认为您正在寻求一种从函数中调用调度程序的方法,以便您可以重用已配置的调度程序。尝试:

(org-agenda nil "pb")
Run Code Online (Sandbox Code Playgroud)

如果您正在寻找要添加到挂钩或初始化的函数,您可以使用 lambda 表达式将其包装起来。例如,您的初始缓冲区可能如下所示:

(setq initial-buffer-choice (lambda ()
  (org-agenda nil "pb")
  (get-buffer "*Org Agenda*")))   
Run Code Online (Sandbox Code Playgroud)