Bagaimana cara meningkatkan buffer scrollback dalam sesi layar yang sedang berjalan?

237

Katakanlah saya memiliki sesi layar berjalan saat ini saya berinteraksi dengan melalui dempul. Saya menyadari bahwa buffer scrollback terlalu kecil dan ingin menambahnya tanpa memulai sesi layar baru.

Apakah ada cara untuk melakukan ini?

Zach
sumber
Untuk berjaga-jaga jika seseorang ingin meningkatkan buffer scrollback ketika memulai sesi baru:screen -h <numlines>
Scz

Jawaban:

180

The man page menjelaskan bahwa Anda dapat memasukkan modus baris perintah dalam sesi berjalan dengan mengetik Ctrl+ A, :maka mengeluarkan scrollback <num>perintah.

Frédéric Hamidi
sumber
4
Anda harus melakukannya untuk setiap jendela layar saat ini secara individual.
Matthew Wilcoxson
2
di mana <num>jumlah baris scrollback
rakslice
Jika Anda menemukan Anda mencapai buffer maks default tidak dapat menampilkan lebih banyak riwayat, dan pengaturan oleh scrollback <num>, itu tidak membantu Anda memperluas buffer lagi, Anda perlu mengulang perintah terakhir untuk mendapatkan seluruh buffer sejarah.
Kamil
362

Tekan Ctrl-akemudian :dan jenis kemudian

scrollback 10000

untuk mendapatkan buffer 10.000 baris, misalnya.

Anda juga dapat mengatur jumlah garis gulir mundur default dengan menambahkan

defscrollback 10000

ke ~/.screenrcfile Anda .

Untuk menggulir (jika terminal Anda tidak mengizinkan Anda secara default), tekan Ctrl-a ESClalu gulir (dengan biasa Ctrl-funtuk halaman berikutnya atau Ctrl-auntuk halaman sebelumnya, atau hanya dengan roda mouse / dua jari Anda). Untuk keluar dari mode gulir, cukup tekan ESC.

Kiat lain: Ctrl-a imenunjukkan pengaturan buffer Anda saat ini.

Lee Netherton
sumber
9
Beri +1 untuk petunjuk dengan defscrollback yang diatur ke 1024 di Ubuntu 12.10 (yang harus saya gunakan di tempat kerja).
erik
2
byobu-screendi Ubuntu 12,04 tampaknya mengatur defscrollback ke 10000
chronospoon
4
Saya ingin menunjukkan bahwa jika screenrc Anda membuka persyaratan tambahan untuk Anda, Anda harus meletakkan defscrollback sebelum windows dibuka, atau mereka hanya akan mendapatkan default 1024
majikman
itu tidak bekerja pada mac. Saya meletakkan startup_message off' and 'defscrollback 5000' into my newly created ~ / .screenrc` dan ini mendapatkan baris pertama, tetapi yang kedua tampaknya diabaikan.
Ben
9

Ada jumlah minimal "default" buffer ketika Anda memulai sesi 'layar' dalam 'sesi dempul' Anda. Saya banyak menggunakan layar dalam pekerjaan saya, jadi saya dapat memberi tahu Anda bahwa Anda tidak akan memiliki kombinasi buffer 'layar' & buffer 'dempul' dalam sesi 'layar' Anda.

Menyetel jumlah default garis gulir balik dengan menambahkan defscrollback 10000 ke ~/.screenrcfile Anda adalah solusi yang tepat.

Omong-omong, saya menggunakan "defscrollback 200000" di ./screenrcfile saya .

Oracle DBA 2000 bc
sumber
4

Seperti yang sudah disebutkan kita punya dua cara!

 Pengaturan interaktif per layar (sesi)

Dan itu dilakukan secara interaktif! Dan segera berlaku!

CTRL + Adiikuti oleh :Dan kita ketik scrollback 1000000Dan tekanENTER

Anda melepaskan diri dari layar dan kembali! Itu akan selalu sama.

Anda membuka layar baru lagi! Dan nilai diatur ulang ke default! Jadi ini bukan pengaturan global!

 Dan pengaturan default permanen

Yang dilakukan dengan menambahkan defscrollback 1000000ke .screenrc(di rumah)

defscrollback dan tidak scrollback (def stand for default)

Yang perlu Anda ketahui adalah jika file tersebut tidak dibuat! Anda yang membuatnya !

> cd ~ && vim .screenrc

Dan Anda menambahkan defscrollback 1000000 !

Atau dalam satu perintah

> echo "defscrollback 1000000" >> .screenrc

(jika belum dibuat)

Mulai berlaku

Ketika Anda menambahkan default ke .screenrc! Layar yang sudah berjalan saat memasang kembali tidak akan berpengaruh! Itu.screenrc dijalankan pada penciptaan layar! Dan itu masuk akal! Seperti halnya peluncuran konsol dan shell yang normal!

Dan semua layar yang baru dibuat akan memiliki nilai yang ditetapkan!

Memeriksa ukuran buffer efektif layar

Untuk memeriksa jenis CTRL + Adiikuti olehi

Dan hasilnya akan seperti

masukkan deskripsi gambar di sini

Yang penting ukuran buffer adalah angka setelah tanda +
(dalam ilustrasi saya setel ke 1 000 000)

Perhatikan juga bahwa ketika Anda mengubahnya secara interaktif! Efeknya langsung dan mengambil alih nilai default!

Bergulir

CTRL+ Adiikuti oleh ESC(untuk masuk ke mode salin).

Kemudian navigasikan dengan Up, DownatauPgUp PgDown

Dan ESClagi untuk keluar dari mode itu.

(Info tambahan: untuk menyalin klik ENTERuntuk mulai memilih! Kemudian ENTERlagi untuk menyalin! Sederhana dan keren)

Sekarang buffer lebih besar!

Dan jumlah itu untuk rincian penting!

Mohamed Allal
sumber
Bagus untuk mengetahui langkah-langkah cara menggulir!
skytree
Terima kasih. belajar trik baru untuk memeriksa ukuran buffer layar menggunakan: CTRL + A diikuti oleh i
alphaGeek
3

PERINGATAN: mengatur nilai ini terlalu tinggi dapat menyebabkan sistem Anda mengalami cegukan yang signifikan. Semakin tinggi nilai yang Anda atur, semakin banyak memori virtual dialokasikan ke proses layar saat memulai sesi layar. Saya mengatur ~ / .screenrc saya ke "defscrollback 123456789" dan ketika saya memulai layar, seluruh sistem saya membeku selama 10 menit sebelum kembali ke titik di mana saya dapat mematikan proses layar (yang menghabiskan 16.6GB VIRT mem saat itu).

1GLENCo
sumber
-3

Untuk anak cucu, jawaban ini salah seperti dicatat oleh Steven Lu. Namun meninggalkan teks asli.

Jawaban asli:

Bagi mereka yang datang melalui pencarian web (beberapa tahun kemudian) ...

Saat menggunakan layar, buffer scrollback Anda adalah kombinasi dari keduanya screen scrollback buffer seperti yang telah dicatat oleh dua jawaban sebelumnya, serta buffer putback scrollback Anda.

Pastikan bahwa Anda meningkatkan KEDUA buffer putback scrollback dan juga screen scrollback buffer, jika tidak, jendela dempul Anda sendiri tidak akan membiarkan Anda menggulir kembali untuk melihat screenriwayat scrollback Anda (diatasi dengan menggulir layar ke dalam dengan ctrl+a->ctrl+u)

Anda dapat mengubah batas scrollback dempul Anda di bawah kategori "Jendela" di pengaturan. Keluar dan membuka kembali sesi dempul ke layar Anda tidak akan menutup layar Anda (dengan asumsi Anda hanya menutup jendela dempul dan tidak mengetik exit), seperti yang diminta OP.

Harapan yang membantu mengidentifikasi mengapa meningkatkan buffer scrollback layar tidak memecahkan masalah seseorang.

Brad P.
sumber
17
Ini tidak akurat. Layar menyimpan buffernya sendiri. Saat Anda menggulir ke atas dengan layar menggunakan mode salin, layar memberi Anda riwayat layar sendiri kepada Anda melalui kutukan. Ketika multiplexer terminal seperti layar sedang digunakan, buffer emulator terminal asli tidak digunakan (memang itu mungkin atau mungkin tidak menumpuk sampah sebagai efek samping)
Steven Lu
poin bagus, dan saya yakin Anda benar ... Saya ingin tahu apakah saya harus menghapus jawaban saya?
Brad P.
Saya tidak yakin. Karena itu juga akan menghapus komentar saya yang sepertinya disukai orang.
Steven Lu
3
haha, benar sekali. Saya pikir saya akan mengeditnya untuk mencatat bahwa itu tidak benar, tetapi tinggalkan teks aslinya
Brad P.
2
Tentu, terima kasih. Saya lebih suka hanya meninggalkan perubahan aditif di situs seperti ini sehingga orang dapat menjauh darinya tanpa menjadi bingung.
Steven Lu