如何仅在命令行栏中使用 vimscript 中的睡眠?

How use sleep in vimscript just for command-line bar?

我正在尝试用 vimscript 为 vim 编写一个插件,我想显示一些日志 具体时间。喜欢:

echo 'some log'
sleep 2
redraw!

当我使用 sleepredraw 时,所有当前 window 都冻结了一段时间,但我只想为记录睡眠,而不是所有 vim window!
我该怎么做?

sleep 会一直阻塞。使用 VIM 版本 8,您可以改用 timer。这是一个精简的示例,不应阻止 VIM:

echo 'some log'
let timer = timer_start(2000, 'LogTrigger', {})
func! LogTrigger(timer)
  silent! redraw!
endfunc