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?
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?
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ę.
<num>jest liczba linii przewijania
scrollback <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
scrollback 10000
na przykład, aby uzyskać bufor linii 10000.
Możesz również ustawić domyślną liczbę linii przewijania, dodając
defscrollback 10000
do twojego ~/.screenrcpliku.
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.
byobu-screenna Ubuntu 12.04 wydaje się ustawić defscrollback na 10000
startup_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 ~/.screenrcpliku jest właściwym rozwiązaniem.
Nawiasem mówiąc, w moim ./screenrcpliku używam „defscrollback 200000” .
Jak już wspomniano, mamy dwa sposoby!
I odbywa się to interaktywnie! I zacznij działać natychmiast!
CTRL + Aa następnie :I piszemy scrollback 1000000I uderzamyENTER
Odłą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!
Dokonuje się tego poprzez dodanie defscrollback 1000000do .screenrc(w domu)
defscrollbacki nie scrollback(def oznacza domyślnie)
Musisz wiedzieć, że plik nie został utworzony! Ty to tworzysz !
> cd ~ && vim .screenrc
I dodajesz defscrollback 1000000do tego!
Lub jednym poleceniem
> echo "defscrollback 1000000" >> .screenrc
(jeśli jeszcze nie zostało utworzone)
Po dodaniu wartości domyślnej do .screenrc! Już uruchomiony ekran przy ponownym dołączeniu nie zadziała! .screenrcProwadzony 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ść!
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ść!
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!
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).
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 screenbufora 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ć screenhistorię 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.
screen -h <numlines>