Bu davranış, bazı (donanım) terminallerde ve çoğu (yazılım) terminal emülatörlerinde bulunan “alternatif ekran” özelliğinden kaynaklanır. Olan şey, bazı terminal farkında programların işlerini yapmak için alternatif 'ekrana' geçmesi ve kapatıldıklarında (çıkma, askıya alma vb.) Normal 'ekrana' geri dönmeleridir. Bu, bu tür programların nihai çıktısını etkili bir şekilde temizler.
“Terminfo altscreen'i önleme” için yapılan web araması , alternatif ekran 'problemini' ve çeşitli çözümleri tartışan bir sayfa sağladı .
Bağlantı verilen sayfada açıklandığı gibi, bazı programlar alternatif ekranı kullanmamak için yapılandırılabilir. Daha az-X
seçenek , bunu yapmanın dolaylı bir yoludur. Vim ve ve değişkenleri ayarlayarak benzer şekilde yapılandırılabilir .t_ti
t_te
Daha geniş bir kapsama sahip bir çözüm , terminaliniz için terminfo girişini, alternatif ekran kontrol dizilerini içermeyecek şekilde düzenlemektir . Terminfo girişleri, belirli efektler oluşturmak için (imleci hareket ettirme, ekranı temizleme, geçerli satırın bir kısmını silme, vb.) Bir terminale gönderilecek programları kontrol eden programlara bir veritabanı oluşturur. Terminalinizin kullandığı terminfo girişini düzenleyerek, “alternatif ekran” kontrol sekanslarının bile var olduğunu tüm terminfo kullanan programları 'ihmal etmeyi' düzenleyebilirsiniz.
Kaynaktan kontrol serilerinin listesinden xterm'den , (için ilgi konusu kontrol sekansları görebilirsiniz xterm'den terminal emulatörleri benzeri) olan
- alternatif ekranı etkinleştir:
ESC [ ? 47 h
(aynı şekilde 1047 ve 1049 için) ve
- normal ekranı geri
ESC [ ? 47 l
yükle : (aynı şekilde 1047 ve 1049 için).
Bu kodlar büyük olasılıkla terminfo değişkenlerinde smcup
ve rmcup
. Mevcut TERM'iniz için bu değişkenleri kullanmanın hızlı ve kirli bir yolu şöyle görünebilir:
infocmp | sed -e 's/[sr]mcup=[^,]*,//' > /tmp/noaltscreen-terminfo
tic -o ~/.terminfo/ /tmp/noaltscreen-terminfo
Bu yöntem oldukça kaba ve kesinlikle tüm terminaller için işe yaramayacaktır, ancak muhtemelen çoğu xterm benzeri terminal emülatörlerinde işe yarayacaktır . İdeal olarak terminaliniz için terminfo girişindeki smcup
ve rmcup
değişkenlerindeki değerleri araştırmalı ve istenmeyen davranışı önlemek için bunları konservatif olarak düzenlemelisiniz. Yukarıda bağlantılı tartışma / çözüm sayfasında, kendiniz kesmek yerine kullanabileceğiniz “önceden pişirilmiş” bir terminfo dosyası vardır (ama buradaki eğlence nedir?).