Ksh

xterm 調整大小導致外殼混亂

  • April 9, 2016

我正在使用反射 x,它使用 xterm 作為終端仿真器。如果我多次最大化和最小化視窗,當我嘗試訪問以前的命令時,文本會變得混亂。問題與此非常相似,但是,我使用的是 ksh shell 而不是 bash。那麼解決方案的 ksh 版本是什麼?謝謝!

在調整實際 xterm 視窗的大小時,我通常需要使用resizeandreset命令來清除/修復問題。

要使用resize

$ eval `resize`

如果你自己執行resize,它會報告列和行的設置。

要使用reset

$ reset

參考

reset命令不會幫助清理調整大小。

resize命令可能會有所幫助,但有一個陷阱。有兩個主要案例resize

  • 當系統無法判斷時告訴系統螢幕有多大,例如,通過不支持 NAWS(關於視窗大小的協商)的串列介面連接。這對於常見問題解答很有用。
  • 修復以前使用resize. 這會產生錯誤報告。

resize程序最初是在基於 termcap 的系統很常見時編寫的。典型的 termcap 描述說明螢幕有多大,因為 1980 年代編寫的大多數 termcap 應用程序不包括詢問螢幕實際大小的系統呼叫。這種情況在 1980 年代後期開始發生變化,引入了SIGWINCH信號和系統呼叫來獲取資訊。

但是,由於這些遺留應用程序,建立了一個約定,即(預設情況下)如果設置了LINES和/或COLUMNS變數,那麼這些將覆蓋 termcap 描述。

到現在為止還挺好。

但是,某些應用程序(包括 shell,例如本質上是 termcap 應用程序的 bash)會比實際螢幕尺寸更關注這些LINESCOLUMNS變數。

如果您評估的輸出resize,您將設置這些變數。這似乎很好,直到(您可能會注意到)再次調整視窗大小時,跟隨螢幕大小更改的程序不再這樣做。

沒問題,您只需重複您對resize.

另一方面,如果您只是簡單地執行resize 而不評估其輸出,它會更新系統的螢幕尺寸概念。

進一步閱讀:

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