Saya memiliki masalah yang muncul saat menggunakan Terminal Mac OS X (TERM = xterm): kadang-kadang ia masuk ke keadaan di mana garis-garis yang menggulir dari atas tidak ditambahkan ke buffer scrollback. Saya tidak menggunakan screen
atau serupa; ini adalah shell bash biasa di dalam tab Terminal.
Itu tidak melakukan ini segera setelah membuka tab baru. Saya percaya ini adalah efek samping dari sesuatu yang saya jalankan di tab masalah. Dugaan saya adalah bahwa ini ada hubungannya dengan emulasi xterm, mungkin wilayah gulir.
Apa yang tidak berhasil:
- Reset lunak dan sulit melalui menu Shell
- Berjalan
reset
di tab
Apakah ada cara yang dapat diandalkan untuk mereset Terminal dan / atau status xterm?
Adakah yang bisa memberikan penjelasan untuk apa yang terjadi, bahkan jika satu-satunya perbaikan adalah dengan menutup tab dan membuka yang baru?
Jawaban:
Ini berarti bahwa terminal menggunakan penyangga layar alternatif. Ada layar utama, yang menggulir ke dalam log scrollback, dan layar alternatif yang tidak. Program "Layar penuh" atau "berorientasi layar" seperti atas, kurang, emacs, vim, dan layar mengalihkan terminal ke layar alternatif secara default.
Setiap layar memiliki konten dan statusnya sendiri. Memiliki layar alternatif memungkinkan program untuk mengambil alih seluruh tampilan, lalu mengembalikan konten sebelumnya ketika keluar, dengan beralih kembali ke layar utama.
Pada Mac OS X Lion 10.7, Terminal memiliki item menu yang dapat Anda gunakan untuk berpindah layar secara manual:
Ini disediakan terutama agar Anda dapat melihat atau menyalin teks dari layar alternatif setelah program "layar penuh" keluar. Xterm memiliki perintah serupa.
Anda juga dapat menggunakannya untuk memaksa program secara manual menggunakan layar tertentu, untuk mengontrol apakah output masuk ke scrollback log, misalnya. Namun, jika saat ini Anda menggunakan program yang secara eksplisit beralih ke layar alternatif, Anda dapat membingungkannya atau mendapatkan hasil yang tidak terduga jika Anda memaksanya ke layar utama saat program sedang berjalan, jadi gunakan ini dengan hati-hati.
Tergantung pada programnya, ia mungkin memiliki argumen baris perintah atau cara lain untuk mengonfigurasinya agar menggunakan layar utama. misalnya
less -X
,.Beberapa entri terminfo dirancang khusus untuk menekan menggunakan layar alternatif, misalnya
xterm1
,.TERM=xterm1 emacs
akan menjalankan Emacs di layar utama. Saya tidak merekomendasikan menggunakanxterm1
secara permanen, karena ini menonaktifkan sejumlah fitur berguna lainnya dibandingkan dengan defaultxterm-256color
pada Lion.Anda juga dapat mengganti layar menggunakan
tput
perintah untuk mengeluarkan urutan keluar dari dalam shell atau skrip.tput smcup
beralih ke layar alternatif, dantput rmcup
beralih kembali ke layar utama.Untuk melihat program mana yang sedang berjalan, lihat nama program yang ditampilkan di jendela Terminal atau judul tab, atau lihat jendela Inspektur ( Shell> Show Inspector ). Proses terakhir dalam daftar di Inspektur adalah (biasanya) program saat ini menggunakan layar. Itu yang Anda harus mengkonfigurasi untuk menggunakan layar utama sebagai gantinya.
sumber
tput rmcup
ssh
sesi saya ke mesin jarak jauh gagal (batas waktu?) Ketika saya masukvi
, tampaknya meninggalkan terminal di Layar Alternatif (karenavi
tidak pernah diberi kesempatan untuk membersihkan). Setelah itu, setiapssh
sesi baru di terminal yang sama akan menunjukkan masalah yang dijelaskan oleh OP, sampai saya menyelesaikan masalah dengan memilih item menu View> Hide Alternate Screen .