我有一个使用重复空闲计时器的小模式:
(timer-activate-when-idle
(run-with-idle-timer 0.2 t 'function-name))
我正在尝试找出处理一个以上缓冲区中同时激活同一 minor-mode 的最佳方法,并了解如何在不影响其他缓冲区的情况下,在杀死缓冲区或停用 minor-mode 时取消定时器。
如果可能的话,我的首选方法是创建一个“buffer-local”空闲定时器并为其分配唯一的名称/标识以进行取消。如果这种方法可行,则非常感谢提供示例。
我最不喜欢的处理方法是循环所有打开的缓冲区,以确定其中是否有任何一个激活了特定的 minor-mode,如果没有,则取消计时器。换句话说,将有一个为所有缓冲区提供服务的计时器。
非常感谢您提供任何处理此情况的想法。
[注意:我意识到我可以设置一个条件,防止定时器执行任何操作(例如,如果未激活 minor-mode xyz),但当不再需要特定的定时器时,我喜欢清理干净。]
kill-buffer-hook
。同时使用该挂钩可能已经足够了。(话虽如此,对某些任意定时器驱动回调的缓冲区参数进行验证似乎对我来说并不是一个坏主意;但是我一时半会儿想不起来是否知道一个失败案例。) - phils