在Elisp中调用一个org-mode自定义命令

4

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))))

我希望能够按下C-c a调用日程调度程序,然后如果我按下pb,它将通过文件夹(project-dirs)和状态过滤我的待办事项。

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

重新表述一下:我想要一个elisp函数,如果调用它,就像现在按下C-c a p b一样,显示我的筛选后的待办事项。


你的问题不太清楚。你是在询问如何在启动时调用特定的议程视图吗?如果是这样,这个答案可能会有所帮助:https://dev59.com/pXI-5IYBdhLWcg3wHUdB#32467530。也许你可以重新表述你的问题,说明你想要的结果。 - andygavin
谢谢您的回答!如果我表达不清楚,我很抱歉,我现在已经扩展了我的问题。我并不想像您链接中所描述的那样在启动时打开议程视图(我的最终目标是在启动时打开特定的过滤待办事项列表,但这超出了问题的范围)。 - CarloDePieri
1个回答

7

我认为您正在寻求一种从函数中调用分发器的方法,以便您可以重用配置好的分发器。请尝试以下代码:

(org-agenda nil "pb")

如果您正在寻找要添加到钩子或初始化的函数,可以使用lambda表达式将其封装起来。例如,您可能具有以下视图作为初始缓冲区:
(setq initial-buffer-choice (lambda ()
  (org-agenda nil "pb")
  (get-buffer "*Org Agenda*")))   

(org-agenda nil "pb") 就是我在寻找的!再次感谢您的时间 :) - CarloDePieri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接