我連接到Z-殼在 Red Hat Enterprise Linux 6.2 機器上透過油灰。當我在 Unix shell 中退出全螢幕進程(例如 Vim 和 less)後,shell 提示字元將從螢幕的最後一行開始。上面的畫面仍然顯示該進程的上下文,因此我丟失了在打開該進程之前 shell 顯示的所有內容。
這種情況不會發生在我自己的 Ubuntu 盒子中,在退出進程後,我回到了我輸入的最後一個命令下方的行。
我可以更改哪些選項(也許在zshrc
?)以使其表現得像我的 Ubuntu 盒子?
答案1
我也見過這個問題。檢查「終端機」->「功能」下的 PuTTY 設定。如果選取“停用切換到備用終端螢幕”,請取消選取它。 (我在該頁面上的所有設定都未選中。)該選項的幫助看起來很有希望。
如果失敗的話,這一頁我透過谷歌搜尋發現可能會給你一些想法。您也許可以設定一些 terminfo 內容以使其正常運作。
答案2
很久以前解決這個問題後,我遇到了類似的問題,Vim 沒有這個問題,但less
有。這也影響了所有使用的程序less
,例如man
.我發現原因是環境變量,它列出了每當調用它時LESS
自動傳遞的參數。導致此問題less
的選項LESS
是-X
:
-X
或者--no-init
禁止將 termcap 初始化和取消初始化字串傳送到終端。如果去初始化字串執行一些不必要的操作(例如清除螢幕),有時這是可取的。
我也從中學到了Unix 和 Linux – “less --quit-if-one-screen
沒有--no-init
”如果禁用-X
/ --no-init
,則也必須停用-F
/ --quit-if-one-screen
(如果已設定)。
若要進行修復less
,使其始終在退出時恢復螢幕,請變更LESS
對應 shell 初始化檔案中的值。這將.bashrc
適用於 Bash、.zshenv
Zsh 和.config/fish/config.fish
Fish。向此文件添加命令export LESS='<all the flags you want, without -X or -F>'
, 或set -gx LESS <flags>
對於fish。您可以預先執行以查看要複製到/語句echo $LESS
中的現有標誌。export
set
答案3
我想到了!我所要做的就是設定$TERM
為xterm
.它曾經是linux
export TERM=xterm
感謝您的連結和提示,大衛!