有没有办法写这样的东西而不接管emacs?
(defun dumb-wait (seconds)
(let ((done (+ (second (current-time)) seconds)))
(while (< (second (current-time)) done)
(message "waiting"))))
(dump-wait 5)将阻止5秒内的emacs.反正有没有写这个,所以它不会阻止?我只是想循环并不时检查一些条件,仍然可以使用emacs.
谢谢!
(run-at-time time repeat function &rest args)应该这样做.nil时间意味着现在.
(setq my-timer
(run-at-time nil 5 (lambda () (message "waiting")))) ; returns timer object
;; or
(setq my-timer
(run-at-time nil 5 'message "waiting"))
(cancel-timer my-timer) ; use timer object from above
Run Code Online (Sandbox Code Playgroud)
编辑:
该参数repeat需要一个以秒为单位的数字,但是有一个函数timer-duration,您可以使用该函数而不是数字.它返回字符串参数提供的秒数.对于大间隔,这有点容易阅读.
(timer-duration "3 hours 2 seconds 1 millisec") ; => 10802.001
Run Code Online (Sandbox Code Playgroud)
您可以使用的可能单词在变量中定义timer-duration-words.
| 归档时间: |
|
| 查看次数: |
347 次 |
| 最近记录: |