![在 Emacs 中定期导出组织议程视图](https://linux22.com/image/1393273/%E5%9C%A8%20Emacs%20%E4%B8%AD%E5%AE%9A%E6%9C%9F%E5%AF%BC%E5%87%BA%E7%BB%84%E7%BB%87%E8%AE%AE%E7%A8%8B%E8%A7%86%E5%9B%BE.png)
为了将 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)
有什么办法可以让它工作?最终目标是在我的.emacs
init 中植入类似这样的内容(也不起作用):
(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)