Вы сделали неверное предположение, и, следовательно, ваша проблема не в том, о чем вы думаете.
Цель приведенного выше кода: печатать строку сообщения в минибуфере несколько раз каждые три секунды.
Это не то, что он делает.
Вы использовали run-with-idle-timer
, который будет запускаться один раз после того, как Emacs простаивал в течение 3 (в данном случае) секунд, и не будет повторять до тех пор, пока не отключится действие произошло - после этого оно снова запустится, как только Emacs простаивает в течение 3 секунд.
См. C-h f run-with-idle-timer
Если вы хотите что-то, что повторяется с постоянным интервалом, используйте run-with-timer
.