sleep-for while循环被忽略

时间:2013-12-23 15:12:54

标签: emacs elisp

我正在尝试编写一个每隔5秒执行一次shell命令的emacs函数。但是,我无法暂停工作。这就是我所拥有的:

  (while '(test)
    (insert (format "echo hello"))
    (comint-send-input))
    (sleep-for 0 5000)

我怀疑由于与Lisp功能评估相关的原因而忽略了睡眠。关于如何在每次命令评估后发生暂停的任何建议?

1 个答案:

答案 0 :(得分:3)

正如评论中提到的那样,问题在于paren。

另外,我刚刚在sit-for中尝试了*scratch*,与sleep-for相比,它表现得更顺畅。

(while 1
  (insert "hello")
  (sit-for 1))

但两者都锁定了Emacs,因为它是单线程的,所以你应该小心这种活动。

请考虑使用async包或类似的东西。