如何在emacs中定期运行任务?

38

有没有一种类似于cron的方式可以定期在长时间运行的emacs中运行elisp函数,但是在emacs进程内部运行呢?

例如,我想要“每隔半小时自动运行(recentf-save-list)”,因为否则它只在退出时运行,当emacs偶尔崩溃时会很糟糕。 (还有其他例子,因此寻找一个通用解决方案而不是特定于recentf的解决方案。)

2个回答

54

查看run-with-timer

(run-with-timer 0 (* 30 60) 'recentf-save-list)

那个链接是闲置计时器页面(当然也很有用)。 - phils
3
问题是希望每半小时运行一次某个东西,而“run-with-timer”的文档接受以秒为单位的数字,因此“(* 30 60)”只是表示30分钟的一种方式。“(* 30 60)”是lisp中将30和60相乘的方法。 - Trey Jackson
@TreyJackson - 我向你致敬。你非常乐于助人和耐心。 - Cheeso

4

你可能也会发现午夜模式非常有用。可以任意定义“午夜”时间,并根据需要添加挂钩。


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