Tmux'da geri kaydırma arabellek boyutu nasıl artırılır?


328

Aşağı kaydırma arabellek boyutunu nasıl artırabilirim tmux?

Kopyalama moduna girersem, mevcut geri kaydırma satırlarının sayısı (sağ üst köşede görünür) her zaman 2000'in altındadır. Tüm tmux komutlarının bir listesini bulmaya çalıştım, ancak kaydırma boyutu hakkında hiçbir şey bulamıyorum. Herkes için bu seçeneği ayarlama screenkomutunun işe yaramadığını görüyorum tmux.

tmux1.8 kullanarak , Ubuntu 12.04 LTS, ya konsoleda gnome-terminal.

Yanıtlar:


428

Geçmiş sınırı, bölme oluşturulduğunda sabit olan ve varolan bölmeler için değiştirilemeyen bir bölme özniteliğidir . Değer, history-limitoturum seçeneğinden alınır (varsayılan değer 2000'dir).

Farklı bir değere sahip bir history-limitbölme oluşturmak için bölmeyi oluşturmadan önce uygun seçeneği ayarlamanız gerekir .

Farklı bir varsayılan oluşturmak için .tmux.confdosyanıza aşağıdakine benzer bir satır koyabilirsiniz :

set-option -g history-limit 3000

Not: Çok büyük bir varsayılan değer ayarlamaya dikkat edin, birçok bölme oluşturursanız çok fazla RAM tüketebilir.

Varolan bir oturumdaki yeni bir bölme (veya yeni bir pencerede ilk bölme) için bu oturumu ayarlayabilirsiniz history-limit. Bunun gibi bir komut kullanabilirsiniz (kabuktan):

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

Yeni bir oturum için (içindeki ilk pencerenin ilk bölmesi) history-limit, oturumu oluşturmadan önce “global” ayarlamanız gerekir :

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

Not: history-limitDeğeri yeniden ayarlamazsanız, yeni değer gelecekte oluşturulacak diğer bölmeler / pencereler / oturumlar için de kullanılır; şu anda (en azından geçici olarak) değişmeden kendi özel sınırına sahip tek bir yeni bölme / pencere / oturum oluşturmanın doğrudan bir yolu yoktur history-limit(yine de show-option(özellikle 1.7 ve sonrasında) mevcut değeri almanıza yardımcı olabilir, böylece daha sonra geri yükleyebilirsiniz ).


26
Bir "satır" gerçekten sadece içindeki karakterler ise, 128 baytın bellekte makul bir satır boyutu olduğunu varsayabiliriz. Tek bir bölme (bana uygun, çok bölme kullanmıyorum) için geri kaydırmak için 32 MB taahhüt etmeye istekliysem, tarih sınırımı kabaca 2 ** (25 - 7) = 256Kveya 250 bin satıra yükseltebilirim.
phs

8
set-option -g history-limit 50000
Yerleşim

2
yeni bir bölme olmasına rağmen benimki sadece 4700 civarında ... tmux 1.9
wuxmedia

4
.Tmux.conf dosyasını nerede bulacağını bilmeyenler için ~ / .tmux.conf adresinde yeni bir dosya oluşturabilir, ardından bu tek satırı set-option -g history-limit 50000 dosyasına ekleyebilirsiniz.
C.Lee

1
Biraz hickupla karşılaştım. Bu değişikliğin etkili olması için tüm tmux oturumlarının kapatılması gerekir. GNU ekranından geldiğimde, her yeni ekran oturumunun ~ / .tmux.conf kaynağını kaynaklayacağını varsaydım ama durum böyle değil. Yalnızca tüm tmux oturumları kapandığında ve yeni oturum açıldığında ~ / .tmux.conf dosyasındaki değişiklik etkili olur.
rudolph9

24

Tmux yapılandırma dosyasını aşağıdaki komutla açın:

vim ~/.tmux.conf

Yapılandırma dosyasına aşağıdaki satırı ekleyin:

set -g history-limit 5000

Oturumu kapatın ve tekrar oturum açın, yeni bir tmux penceresi başlatın ve sınırınız şimdi 5000'dir.


3
Oturumu kapatmak ve oturum açmak gerekli değildir. Sadece tmux sunucusundan tamamen çıkmanız veya ~/.tmux.confher oturumda kaynak oluşturduğunuzdan emin olmanız (ve ardından bu oturumlarda yeni pencereler başlatmanız ve eski pencereleri kapatmanız) yeterlidir .
henrebotha

3

Bu ntc2 ve Chris Johnsen'in cevabı üzerine kuruludur. Özel geçmiş sınırı olan yeni bir oturum oluşturmak istediğimde bunu kullanıyorum. Gelecekteki oturumlar için geçmiş sınırımı kalıcı olarak değiştirmeden sınırlı kaydırma ile oturumlar oluşturmanın bir yolunu istedim.

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

Bu, mevcut oturumlar olsun ya da olmasın işe yarar. Yeni oturum için geçmiş sınırı ayarladıktan sonra, oturumu varsayılan olarak 2000'e döndürür.

Bunu biraz daha kullanışlı hale getiren yürütülebilir bir bash betiği oluşturdum. Komut dosyasına iletilen 1. parametre, yeni oturum için geçmiş sınırını ve 2. parametre oturum adını ayarlar:

#!/bin/bash
tmux set-option -g history-limit "${1}" \; new-session -s "${2}" \; set-option -g history-limit 2000
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.