Powiedzmy, że mam aktualnie uruchomioną sesję ekranową, z którą wchodzę w interakcję poprzez kit. Zdałem sobie sprawę, że bufor przewijania jest za mały i chciałbym go zwiększyć bez rozpoczynania nowej sesji ekranowej.
Czy jest na to sposób?
linux
gnu-screen
Zach
źródło
źródło
screen -h <numlines>
Odpowiedzi:
Strona mężczyzna wyjaśnia, że można wejść do trybu wiersza poleceń w sesji uruchomiony przez wpisywanie Ctrl+ A, :, a następnie wydając
scrollback <num>
komendę.źródło
<num>
jest liczba linii przewijaniascrollback <num>
, nie pomoże ci już rozszerzyć bufora, musisz ponownie wykonać ostatnie polecenie, aby uzyskać cały bufor historii.Naciśnij Ctrl-anastępnie, :a następnie wpisz
na przykład, aby uzyskać bufor linii 10000.
Możesz również ustawić domyślną liczbę linii przewijania, dodając
do twojego
~/.screenrc
pliku.Aby przewijać (jeśli terminal domyślnie nie pozwala na to), naciśnij, Ctrl-a ESCa następnie przewiń (w zwykły sposób Ctrl-fna następną stronę lub Ctrl-ana poprzednią stronę lub tylko kółkiem myszy / dwoma palcami). Aby wyjść z trybu przewijania, wystarczy nacisnąć ESC.
Kolejna wskazówka: Ctrl-a ipokazuje twoje bieżące ustawienie bufora.
źródło
byobu-screen
na Ubuntu 12.04 wydaje się ustawić defscrollback na 10000startup_message off' and 'defscrollback 5000' into my newly created
~ / .screenrc` i dostaje pierwszą linię, ale druga wydaje się być ignorowana.Podczas uruchamiania sesji „screen” w ramach „sesji putty” jest minimalna ilość „domyślnego” bufora. W swojej pracy często używam ekranów, więc mogę powiedzieć, że nie będziesz mieć kombinacji bufora „screen” i bufora „putty” w sesji „screen”.
Ustawienie domyślnej liczby linii przewijania przez dodanie
defscrollback 10000
do~/.screenrc
pliku jest właściwym rozwiązaniem.Nawiasem mówiąc, w moim
./screenrc
pliku używam „defscrollback 200000” .źródło
Jak już wspomniano, mamy dwa sposoby!
Ustawienie interaktywne na ekran (sesję)
I odbywa się to interaktywnie! I zacznij działać natychmiast!
CTRL + Aa następnie :I piszemy
scrollback 1000000
I uderzamyENTEROdłączasz się od ekranu i wracasz! Zawsze będzie tak samo.
Otworzysz kolejny nowy ekran! A wartość jest ponownie resetowana do wartości domyślnej! Więc to nie jest ustawienie globalne!
I stałe ustawienie domyślne
Dokonuje się tego poprzez dodanie
defscrollback 1000000
do.screenrc
(w domu)defscrollback
i niescrollback
(def oznacza domyślnie)Musisz wiedzieć, że plik nie został utworzony! Ty to tworzysz !
I dodajesz
defscrollback 1000000
do tego!Lub jednym poleceniem
(jeśli jeszcze nie zostało utworzone)
Robiąc efekt
Po dodaniu wartości domyślnej do
.screenrc
! Już uruchomiony ekran przy ponownym dołączeniu nie zadziała!.screenrc
Prowadzony przy tworzeniu ekranu! I to ma sens! Podobnie jak w przypadku normalnego uruchamiania konsoli i powłoki!Wszystkie nowo utworzone ekrany będą miały ustawioną wartość!
Sprawdzanie efektywnego rozmiaru bufora ekranu
Aby sprawdzić wpisz, CTRL + Aa następniei
Rezultat będzie taki jak
Co ważne, rozmiar bufora to liczba po znaku +
(na ilustracji ustawiłem go na 1 000 000)
Pamiętaj też, że kiedy zmienisz to interaktywnie! Efekt jest natychmiastowy i przejmuje domyślną wartość!
Przewijanie
CTRL+ Aa następnie ESC(aby przejść do trybu kopiowania).
Następnie nawiguj za pomocą Up, DownlubPgUp PgDown
I ESCponownie, aby wyjść z tego trybu.
(Dodatkowe informacje: aby skopiować hit, ENTERaby rozpocząć wybieranie! Następnie ENTERponownie, aby skopiować! Proste i fajne)
Teraz bufor jest większy!
I to wszystko podsumowuje ważne szczegóły!
źródło
OSTRZEŻENIE: zbyt wysokie ustawienie tej wartości może spowodować znaczną czkawkę w systemie. Im wyższa ustawiona wartość, tym więcej pamięci wirtualnej jest przydzielane procesowi ekranu podczas inicjowania sesji ekranu. Ustawiłem ~ / .screenrc na „defscrollback 123456789” i kiedy zainicjowałem ekran, cały mój system zawiesił się na dobre 10 minut, zanim wróciłem do punktu, w którym byłem w stanie zabić proces ekranu (który zużywał 16,6 GB VIRT mem).
źródło
Dla potomnych ta odpowiedź jest nieprawidłowa, jak zauważył Steven Lu. Pozostawia jednak oryginalny tekst.
Oryginalna odpowiedź:
Do osób przybywających przez wyszukiwarkę internetową (kilka lat później) ...
Podczas korzystania z ekranu bufor przewijania jest kombinacją zarówno
screen
bufora przewijania, jak wspomniano w dwóch poprzednich odpowiedziach, jak i bufora przewijania kitu.Upewnij się, że ZARÓWNO zwiększasz bufor przewijania szpachli, jak i bufor przewijania ekranu, w przeciwnym razie samo okno szpachli nie pozwoli ci przewinąć do tyłu, aby zobaczyć
screen
historię przewijania (pokonane przez przewijanie ekranu za pomocąctrl+a->ctrl+u
)Możesz zmienić limit przewijania szpachli w kategorii „Okno” w ustawieniach. Wyjście i ponowne otwarcie sesji szpachlowania na ekranie nie zamknie ekranu (zakładając, że po prostu zamkniesz okno szpachlówki i nie piszesz
exit
), jak poprosił PO.Mam nadzieję, że pomoże to ustalić, dlaczego zwiększenie bufora przewijania ekranu nie rozwiązuje czyjegoś problemu.
źródło