Bash

GNU 螢幕清除 vim、less 等。出口

  • June 20, 2016

我對 screen 很陌生,但根據我在網際網路上找到的各種建議配置了我的 ~/.screenrc 文件。我有一個問題,但我確信可以很容易地解決它;我認為這是一個 termcap 設置..?

在獨立 bash(在 Mac OSX 10.6 上)中使用 less、vim、top 或其他程序後,退出這些程序後,終端的緩衝區將清除,目前命令行上方的行將是我輸入的上一個命令。

但是,對於螢幕,當我退出這些程序中的任何一個時,螢幕緩衝區不會清除/刷新,我仍然會看到我在該程序中看到的內容.. 有意義嗎?

例如在獨立 bash(無螢幕)中:-

hostname:~ auser$ vim afile 
[do stuff in file, then :q to exit]

退出後我會看到:-

hostname:~ auser$ vim afile 
hostname:~ auser$

但在螢幕上:-

bash-3.2$ vim afile
[do stuff in file, then :q to exit]

退出後,我會看到一個完整的螢幕:-

~  # [Empty lines in vim are represented by these tilda characters. ]
...
~  # [ Every line on the screen is one of these tildas ]
bash-3.2$   # [ This is the bottom line in the terminal ]

我希望這有某種意義。非常感謝任何和所有幫助!TIA

答案在於您正在使用的“真實”終端和通過screen. screen應用程序通過查看終端類型執行其終端 I/O screen。您的“真實”終端可以是從xterm到 的任何東西vt100。(使用printenv TERM或等效查找。)

TUI 應用程序喜歡vimless根據他們發現自己與之交談的終端的能力來調整他們的行為。對於terminfo機制的機制的詳細闡述,甚至對於程序如何喜歡vimless使用它的機制來說,這個答案都太短了。關於這些東西有整本書。一個非常簡短的簡介是,您的“真實”終端正在宣傳screen終端沒有的功能。

另外,當然,SuperUser 已經在此處、此處和此處詳細回答了這個問題

引用自:https://serverfault.com/questions/270103