Shell

通過鍵盤快捷鍵重置終端(沒有輸入鍵)

  • November 14, 2016

這應該很容易吧?

例如zsh,你可以把它放在你的.zshrc

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

但是,這會重置終端,但需要您按 Enter 鍵才能重新顯示提示。

將命令更改為echo -ne '\n' | tput reset也無效。

有沒有辦法使用鍵盤快捷鍵重置終端,而無需在之後按輸入鍵來顯示提示?

thrig 沒有看到這一點,因為重置 xyr 終端的行為會導致WINCH信號或類似信號,這會導致 ZLE 重新顯示提示。

它也在我目前正在輸入的終端上。發出的終端復位字元串tput reset包括 DECCOLM 控制序列。這會將終端從我放入的 100 列模式重置回 80 列模式。第一次,這確實會產生WINCH信號,因為終端會調整大小。第二從 80 列變為 80 列,這不會導致WINCH. 所以我只能在終端上看到一次 thrig 的行為。

您沒有看到這一點,因為您的終端不會發生這種情況,並且您沒有告訴 ZLE 它需要將提示重新顯示為小元件的一部分:

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

引用自:https://unix.stackexchange.com/questions/323164