Çalışan bir ekran oturumunda geri kaydırma arabelleğini nasıl artırabilirim?


237

Diyelim ki macunla etkileşime girdiğim şu anda çalışan bir ekran oturumum var. Ben Scrollback tampon çok küçük ve bunu artırmak istiyoruz fark ettik olmadan yeni bir ekran oturumu başlamadan.

Bunu yapmanın bir yolu var mı?


Her ihtimale karşı birisi scrollback tampon artırmak istiyor : Yeni bir oturum başlatmascreen -h <numlines>
SCz

Yanıtlar:


180

Adam sayfası size yazarak çalışan bir oturumda komut satırı moduna girebilir açıklıyor Ctrl+ A, :ardından veren scrollback <num>komutu.


4
Geçerli ekranın her penceresi için ayrı ayrı yapmanız gerekir.
Matthew Wilcoxson

2
burada <num>scrollback hatlarının sayısıdır
rakslice

Varsayılan maksimum ara belleğe daha fazla geçmiş gösteremediğinizi bulursanız ve bu ayarı yapmak scrollback <num>artık arabelleği dışlamanıza yardımcı olmazsa, tüm geçmiş arabelleğini almak için son komutu yeniden yapmanız gerekir.
Kamil

362

Ctrl-aÖnce tuşuna basın :ve sonra şunu yazın

scrollback 10000

Örneğin, 10000 satırlık bir tampon almak için.

Ekleyerek varsayılan geri kaydırma satırı sayısını da ayarlayabilirsiniz.

defscrollback 10000

~/.screenrcdosyasına ekleyin .

Kaydırmak için (terminaliniz varsayılan olarak izin vermiyorsa) tuşuna basın Ctrl-a ESCve ardından ( Ctrl-fsonraki sayfa veya Ctrl-aönceki sayfa için olağan olarak veya sadece fare tekerleğiniz / iki parmağınızla) kaydırın . Kaydırma modundan çıkmak için düğmesine basın ESC.

Başka bir ipucu: Ctrl-a igeçerli arabellek ayarınızı gösterir.


9
Ubuntu 12.10'da 1024 olarak ayarlanan defscrollback ile ipucu için +1 (işte kullanmak zorundayım).
erik

2
byobu-screenon Ubuntu 12.04, defscrollback'i 10000 olarak ayarlıyor gibi görünüyor
chronospoon

4
Ben Screenrc sizin için ek şartları açarsa, o pencere, açılmadan önce defscrollback koymak gerekir ya da onlar varsayılan 1024 alacak işaret etmek istedik
majikman

bir mac üzerinde çalışmıyor. Ben koymak startup_message off' and 'defscrollback 5000' into my newly created ~ / .screenrc` ve ilk satırı elde ettiğini, ancak ikinci bir ihmal gibi görünüyor.
Ben

9

'Macun seansınız' içinde bir 'ekran' oturumu başlattığınızda minimum miktarda "varsayılan" arabellek vardır. Çalışmamda ekranları çok kullanıyorum, böylece 'ekran' oturumunuzda 'ekran' tamponu ve 'macun' tamponunun bir kombinasyonuna sahip olmayacağınızı söyleyebilirim.

Ekleyerek scrollback varsayılan satır sayısı ayarlama defscrollback 10000 sizin için ~/.screenrcdosyanın doğru çözümdür.

Bu arada, dosyamda "defscrollback 200000" kullanıyorum ./screenrc.


4

Daha önce de belirtildiği gibi iki yolumuz var!

 Ekran başına (oturum) etkileşimli ayarı

Ve etkileşimli olarak yapılır! Ve hemen yürürlüğe gir!

CTRL + Atakip ediyor :Ve yazıyoruz scrollback 1000000Ve vuruyoruzENTER

Ekrandan ayrılıp geri dönüyorsunuz! Her zaman aynı olacak.

Yeni bir ekran daha açıyorsun! Ve değer tekrar varsayılana sıfırlanır! Yani bu küresel bir ortam değil!

 Ve kalıcı varsayılan ayar

Ekleyerek yapılır Hangi defscrollback 1000000için .screenrc(evde)

defscrollbackve değil scrollback(def varsayılan olarak durur)

Bilmeniz gerekenler dosya oluşturulmamışsa! Siz oluşturun !

> cd ~ && vim .screenrc

Ve siz ekleyin defscrollback 1000000!

Veya bir komutta

> echo "defscrollback 1000000" >> .screenrc

(önceden oluşturulmadıysa)

Etkili olma

Varsayılanı eklediğinizde .screenrc! Yeniden takma sırasında zaten çalışan ekran etkili olmayacak! .screenrcEkran oluşturma sırasında çalışma! Ve mantıklı! Tıpkı normal bir konsol ve mermi fırlatma gibi!

Ve tüm yeni oluşturulan ekranlar ayarlanan değere sahip olacak!

Ekran etkili arabellek boyutunu kontrol etme

Türü ve CTRL + Aardından kontrol etmek içini

Ve sonuç şöyle olacak

resim açıklamasını buraya girin

Önemlisi arabellek boyutu + işaretinden sonraki sayıdır
(şekilde resimde 1 000 000 olarak ayarladım)

Ayrıca etkileşimli olarak değiştirdiğinizde unutmayın! Efekt hemen ve varsayılan değeri devralın!

Kaydırma

CTRL+ Aardından ESC(kopyalama moduna girmek için).

Ardından Up, DownveyaPgUp PgDown

Ve ESCyine o moddan çıkmak için.

(Ekstra bilgi: ENTERseçmek için hit kopyalamak için! Sonra ENTERtekrar kopyalamak için! Basit ve serin)

Şimdi arabellek daha büyük!

Ve bu önemli ayrıntılar için özetliyor!


Kaydırma adımlarını bilmek harika!
skytree

Teşekkürler. CTRL + A ve ardından i
alphaGeek

3

UYARI: bu değerin çok yüksek ayarlanması sisteminizde önemli bir aksaklık yaşamanıza neden olabilir. Ayarladığınız değer ne kadar yüksek olursa, ekran oturumunu başlatırken ekran işlemine o kadar sanal bellek ayrılır. ~ / .Screenrc cihazımı "defscrollback 123456789" olarak ayarladım ve bir ekran başlattığımda, ekran sürecini (16,6 GB tüketen) noktaya geri dönmeden önce tüm sistemim 10 dakika boyunca dondu. o zamana kadar VIRT mem).


-3

Gelecek nesiller için bu cevap Steven Lu'nun belirttiği gibi yanlıştır. Ancak orijinal metni bırakmak.

Orijinal cevap:

Web aramasıyla gelenlere (birkaç yıl sonra) ...

Ekranı kullanırken, geri kaydırma arabelleğiniz hem screenönceki iki yanıtı not ettiğiniz gibi geri kaydırma arabelleğinin hem de macun kaydırma geri arabelleğinizin birleşimidir .

Macun kaydırma kaydırma tamponunun yanı sıra ekran kaydırma tamponunun her ikisini de artırdığınızdan emin olun, aksi takdirde macun pencerenizin kendisi geri screenkaydırma geçmişinizi görmek için geri kaydırma yapmanıza izin vermez (ekran içinde kaydırarak üstesinden gelin ctrl+a->ctrl+u)

Macun kaydırma iptali sınırınızı ayarlarda "Pencere" kategorisi altında değiştirebilirsiniz. exitOP'nin istediği gibi bir macun oturumundan çıkmak ve ekranınıza yeniden açmak ekranınızı kapatmaz (sadece macun penceresini kapattığınızı ve yazmadığınızı varsayarak ).

Bunun, ekranın geri kaydırma arabelleğini artırmanın neden birinin sorununu çözmediğini belirlemeye yardımcı olacağını umuyoruz.


17
Bu yanlış. Ekran kendi arabelleğini tutar. Kopyalama modunu kullanarak ekranı yukarı kaydırdığınızda, ekran lanetler aracılığıyla ekranın kendi geçmişini size besler. Ekran gibi bir terminal çoklayıcı kullanıldığında, yerel terminal emülatörünün tamponu kullanılmaz (aslında yan etki olarak çöp birikebilir veya biriktirmeyebilir)
Steven Lu

iyi puanlar ve doğru olduğuna inanıyorum ... Cevabımı silmem gerekir mi acaba?
Brad P.

Emin değilim. Bu aynı zamanda insanların hoşuna giden yorumumu da kaldırır.
Steven Lu

3
haha, oldukça doğru. Sanırım yanlış olduğunu not etmek için düzenleyeceğim, ancak orijinal metni bırakın
Brad P.

2
Tabii, teşekkürler. İnsanların kafasını karıştırmadan buradan uzaklaşabilmeleri için böyle bir sitede yalnızca ek değişiklikler bırakmayı tercih ederim.
Steven Lu
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.