Tergantung pada terminal / lingkungan urutan berikut memiliki efek yang berbeda:
$ ls
1
2
$ man ls
enter q
Entah saya melihat layar halaman manual terakhir ditampilkan di atas prompt saat ini atau output ls dan output shell sebelumnya dikembalikan. Efek yang sama diamati misalnya ketika menggunakan vim
dan kemudian menangguhkannya untuk melakukan sesuatu pada shell.
Pada Fedora 19 - layar default tampaknya tidak-restore, gnome-terminal / xterm menggunakan do-restore secara default.
Pada Solaris tergantung pada terminal / terminfo db tampaknya.
Saya ingin mengkonfigurasi perilaku pemulihan secara konsisten antara berbagai sistem / terminal.
Jawaban:
Fitur ini sepertinya disebut 'layar alternatif' atau beralih antara layar normal dan layar alternatif.
Anda dapat menjelajahinya menggunakan xterm. Misalnya, ketik
man man
anxterm
dan keluar man. Sekarang Anda dapat beralih ke layar alternatif melalui Ctrl+ Mouse2 (klik tengah) -> 'Tampilkan layar alternatif'. Atau Anda dapat langsung memasukkan urutan kontrol xterm , misalnya:Dua perintah terakhir juga bekerja di gnome-terminal (mungkin juga yang lain).
Apa yang terjadi ketika
man
/vi
/less
dll. Startup pada dasarnya mereka mengirim perintah layar-jelas abstrak. Saat keluar (atau menangguhkan) mereka mengirim perintah layar pengembalian abstrak. Bagaimana perintah diterjemahkan ke urutan kontrol terminal beton didefinisikan dalam database terminfo .Nonaktifkan pergantian layar alternatif
Apa yang harus bekerja untuk semua terminal adalah menyesuaikan entri terminfo lokal, yaitu menghapus pemetaan perintah layar clear / restore abstrak.
Anda dapat melakukannya seperti ini - untuk
$TERM
entri saat ini (untuk gnome-terminal di Fedora 19 misalnya):Sekarang Anda dapat mengujinya melalui:
Anda dapat mengulangi langkah-langkah di atas untuk terminal lain jika Anda menggunakan banyak terminal. Jika semuanya berfungsi seperti yang diharapkan, Anda dapat mengatur
TERM
melalui file-shell shell Anda.Anda juga dapat secara langsung menentukan nama terminal sebagai parameter untuk
infocmp
, misalnya:Aktifkan pergantian layar alternatif
Beberapa terminal mendukung fitur penggantian layar alternatif (mis. Layar ), tetapi nonaktifkan pada pengaturan standar .
Untuk
screen
Anda dapat mengaktifkannya melalui~/.screenrc
:Jika Anda melakukan login jarak jauh melalui ssh ke - katakan - sistem Solaris mungkin basis-basis-data sistem-konfigurasi yang dikonfigurasikan dari jarak jauh adalah jenis yang bersejarah, rusak atau menyertakan beberapa standar khusus / tidak-spesifik Solaris yang tidak cocok dengan terminal 'edge edge' Anda menjalankan ssh.
Dengan demikian, ini adalah opsi untuk hanya menyalin basis data terminfo lokal dari / usr / share / info (pada klien) ke
host:~/.terminfo
(pada server).Jika format terminfo yang dikompilasi tidak kompatibel, Anda juga dapat mengekspor / mengimpor entri seperti pada paragraf sebelumnya.
Saya sudah mencoba menggunakan terminfo-db dari instalasi Cygwin dan menyalinnya langsung ke sistem Solaris 10.
Jika Anda ingin membagikan terminfo db alternatif antara pengguna, Anda menentukan jalurnya melalui
TERMINFO
variabel lingkungan.Abaikan Urutan Kontrol
Beberapa terminal mendukung penonaktifan urutan kontrol untuk pergantian layar alternatif. Misalnya xterm memiliki opsi, gnome-terminal belum.
Untuk xterm itu adalah X-ressource , mis
Konfigurasi khusus program
Beberapa program memiliki file konfigurasi untuk mengkonfigurasi perintah kontrol urutan / terminfo apa yang mereka kirim. Sebagai contoh
mengkonfigurasi
less
untuk tidak menghapus / mengembalikan layar.Untuk
vim
Anda dapat memasukkan sesuatu sepertidi dalam kamu
~/.vimrc
.Saya belum menemukan opsi bagaimana mengkonfigurasi perilaku itu untuk top - secara default tidak mengirim layar pemulihan.
sumber
smcup
ataurmcup
. Dalam kasus saya, ada barang-barang lain yang sejalan dengan mereka. Barang-barang lainnya juga terhapus. Jadi mungkin sesuatu sepertis/[sr]mcup=[^,]*,//'
itu lebih baik.