lambda()
私はこのような関数を追加しましたrun-with-idle-timer
:
(run-with-idle-timer my-configurable-idle-time t
(lambda ()
;;; do something
) )
後でアイドルタイマートリガーからこの機能を再び削除することは可能ですか?
はい、に渡すことができるオブジェクトをrun-with-idle-timer
返します。timer
cancel-timer
timer
オブジェクトを保持していない場合はtimer-idle-list
、手動で変更できます。
実行中の Emacs タイマーのリストを取得するも参照してください。
また、開始したタイマーを強制終了したいという同様の状況にも遭遇しました。
(setq my-timer (run-with-timer 5 5 'my-func))
でも、
(cancel-timer my-timer)
my-timer が設定されていないと言われたため、機能していませんでした(なぜこれが起こったのかわかりません)。
最初のポスターの方法に加えて、次の方法で殺すことができます。
(cancel-function-timers 'my-func)
これにより、関数 my-func を呼び出すすべてのタイマーがキャンセルされます。
私もテストしたタイマーリストを変更してそれを殺すために、私は次のことをしました:
(length timer-list) ;; I had two timers..one good, one bad
(cdr timer-list) ;; I verified the last was the one I wanted to keep
(setq timer-list (cdr timer-list)) ;; I reset timer-list
明らかに、このリスト構造はさまざまであるため、それに応じて調整する必要があります。(run-with-idle-timer) でタイマーを開始した場合は、「timer-idle-list」に置き換えます。
これは、'gamegrid-start-timer' でタイマーを開始し、'gamegrid-kill-timer が機能しない場合にも機能するはずです。