通过键盘快捷键重置终端(无需输入键)

通过键盘快捷键重置终端(无需输入键)

这应该很容易,对吧?

例如zsh,您可以将其放入您的.zshrc

reset_widget() tput reset
zle -N reset_widget
bindkey "^L" reset_widget

但是,这会重置终端,但需要您按 Enter 键才能重新显示提示。

将命令更改为echo -ne '\n' | tput reset也没有效果。

有没有办法使用键盘快捷键重置终端,而不必随后按 Enter 键来显示提示?

答案1

thrig 没有看到这一点,因为重置 xyr 终端的行为会产生WINCH信号或类似信号,这会导致 ZLE 重新显示提示。

它也在我当前正在输入的终端上执行。由 发出的终端复位字符串tput reset包括 DECCOLM 控制序列。这会将终端从我设置的 100 列模式重置回 80 列模式。第一次,这确实会产生WINCH信号,因为终端的大小发生了调整。这第二周围的时间从 80 列更改为 80 列,这不会导致WINCH.所以我只在我的终端上看到一次 thrig 的行为。

您没有看到这一点是因为您的终端不会发生这种情况,并且您忽略了告诉 ZLE 它需要重新显示提示作为小部件的一部分:

reset_widget() { tput 重置;内置 zle .redisplay; }

相关内容