我尝试以下操作:
clear-cmdline() {
zle && zle kill-buffer
sched +3 clear-cmdline
}
sched +3 clear-cmdline
运行此代码后,我在提示时输入几个字母,然后等待。什么都没发生。除非我继续输入,否则命令行将被清除。如何在命令行中获得刚刚清除的预期效果?
答案1
它确实有效。只是提示直到您下次输入内容时才会重新绘制。添加zle -R
重画提示符:
clear-cmdline() {
zle && zle kill-buffer && zle -R
sched +3 clear-cmdline
}
sched +3 clear-cmdline