在 Emacs 中定期导出组织议程视图

在 Emacs 中定期导出组织议程视图

为了将 org agenda 视图导出到文本文件中以供进一步处理,我会(org-batch-store-agenda-views)定期将其作为由 cron 运行的 Emacs 批处理作业运行。由于启动 emacs 实例来执行一个 500 毫秒的函数调用会产生一些开销,因此我希望让我的一个持续运行的实例为我执行此操作。

有一个定时器库在 Emacs 中,但提供的函数没有按预期调用该函数:

(run-with-idle-timer 2 1 'org-batch-store-agenda-views)

(run-at-time 5 5 'org-batch-store-agenda-views)

有什么办法可以让它工作?最终目标是在我的.emacsinit 中植入类似这样的内容(也不起作用):

  (let ((time-interval (* 60 10)))
    (defvar my-org-agenda-updater-handle
      (run-with-timer (random time-interval) time-interval
                      'org-batch-store-agenda-views)
      "A timer object that denotes our running batch job."))

答案1

好的,在调试时,我对函数做了一个非常简单的包装,它开始工作了。可能是计时器在参数中向函数传递了一些奇怪的内容,或者闭包不正确。无论如何。:)

(defun progo-run-agenda-store ()
  ""
  (message "Agenda to be exported... ")
  (org-batch-store-agenda-views)
  (message "Agenda exported!"))

(run-at-time 5 5 'progo-run-agenda-store)

相关内容