Bagaimana cara meningkatkan ukuran buffer scrollback di tmux?

328

Bagaimana cara meningkatkan ukuran buffer scrollback tmux?

Jika saya memasuki mode salin, jumlah garis scrollback yang tersedia (terlihat di sudut kanan atas) selalu di bawah 2000. Saya mencoba menemukan daftar semua perintah tmux, tetapi saya tidak dapat menemukan apa pun tentang ukuran scrollback. Untuk semua saya melihat screenperintah untuk mengatur opsi yang tidak berfungsi tmux.

Menggunakan tmux1.8, Ubuntu 12.04 LTS, baik konsoleatau gnome-terminal.

moon.musick
sumber

Jawaban:

428

Batas riwayat adalah atribut panel yang diperbaiki pada saat pembuatan panel dan tidak dapat diubah untuk panel yang ada . Nilai diambil dari history-limitopsi sesi (nilai default adalah 2000).

Untuk membuat panel dengan nilai yang berbeda, Anda perlu mengatur history-limitopsi yang sesuai sebelum membuat panel.

Untuk membuat default yang berbeda, Anda dapat meletakkan baris seperti berikut di .tmux.conffile Anda :

set-option -g history-limit 3000

Catatan: Hati-hati mengatur nilai standar yang sangat besar, itu dapat dengan mudah mengkonsumsi banyak RAM jika Anda membuat banyak panel.

Untuk panel baru (atau panel awal di jendela baru) di sesi yang ada, Anda dapat mengatur sesi itu history-limit. Anda mungkin menggunakan perintah seperti ini (dari shell):

tmux set-option history-limit 5000 \; new-window

Untuk (panel awal dari jendela awal masuk) sesi baru Anda perlu mengatur "global" history-limitsebelum membuat sesi:

tmux set-option -g history-limit 5000 \; new-session

Catatan: Jika Anda tidak mengatur ulang history-limitnilai, maka nilai baru juga akan digunakan untuk panel / jendela / sesi lain yang dibuat di masa depan; saat ini tidak ada cara langsung untuk membuat satu panel / jendela / sesi baru dengan batas spesifik sendiri tanpa (setidaknya sementara) mengubah history-limit(meskipun show-option(terutama di 1,7 dan kemudian) dapat membantu dengan mengambil nilai saat ini sehingga Anda mengembalikannya nanti ).

Chris Johnsen
sumber
26
Jika "garis" benar-benar hanya karakter di dalamnya, maka kita dapat mengasumsikan 128 byte adalah ukuran garis yang wajar dalam memori. Jika saya mau komit 32 MB untuk menggulir kembali untuk satu panel (yang cocok untuk saya, saya tidak menggunakan banyak panel), maka saya bisa meningkatkan batas sejarah saya menjadi sekitar 2 ** (25 - 7) = 256Katau 250 ribu baris.
phs
8
Saya akhirnya memilihset-option -g history-limit 50000
phs
2
milikku tampaknya hanya naik menjadi sekitar 4.700 .. meskipun panel baru. tmux 1.9
wuxmedia
4
Bagi Anda yang tidak tahu di mana menemukan file .tmux.conf, Anda bisa membuat file baru di ~ / .tmux.conf, lalu tambahkan baris ini ke dalam file set-option -g history-limit 50000
C.Lee
1
Saya menabrak sesuatu. Semua sesi tmux harus ditutup agar perubahan ini dapat berlaku. Datang dari layar GNU Saya berasumsi setiap sesi layar baru akan mencari ~ / .tmux.conf tapi itu tidak terjadi. Hanya ketika semua sesi tmux ditutup dan yang baru dibuka apakah perubahan ke ~ / .tmux.conf berpengaruh.
rudolph9
24

Buka file konfigurasi tmux dengan perintah berikut:

vim ~/.tmux.conf

Dalam file konfigurasi tambahkan baris berikut:

set -g history-limit 5000

Keluar dan masuk lagi, mulai tmux windows baru dan batas Anda adalah 5000 sekarang.

f4d0
sumber
3
Tidak perlu keluar dan masuk. Anda hanya perlu keluar dari server tmux sepenuhnya, atau pastikan Anda sumber ~/.tmux.confdi setiap sesi (& kemudian luncurkan jendela baru di sesi tersebut & tutup semua jendela lama).
henrebotha
3

Ini didasarkan pada jawaban ntc2 dan Chris Johnsen. Saya menggunakan ini setiap kali saya ingin membuat sesi baru dengan batas sejarah khusus. Saya ingin cara membuat sesi dengan scrollback terbatas tanpa secara permanen mengubah batas sejarah saya untuk sesi mendatang.

tmux set-option -g history-limit 100 \; new-session -s mysessionname \; set-option -g history-limit 2000

Ini berfungsi apakah ada sesi yang ada. Setelah menetapkan batas riwayat untuk sesi baru, pengaturan ulang akan kembali ke standar yang menurut saya adalah 2000.

Saya membuat skrip bash yang dapat dieksekusi yang membuat ini sedikit lebih bermanfaat. Parameter pertama yang diteruskan ke skrip menetapkan batas riwayat untuk sesi baru dan parameter ke-2 menentukan nama sesi:

#!/bin/bash
tmux set-option -g history-limit "${1}" \; new-session -s "${2}" \; set-option -g history-limit 2000
Devhen
sumber