Linie terminala OS X nie przechodzą w tryb przewijania


Mam problem, który występuje podczas korzystania z terminala Mac OS X (TERM = xterm): czasami dochodzi do stanu, w którym wiersze przewijane od góry nie są dodawane do bufora przewijania. Nie używam
       screen
lub podobne; jest to prosta powłoka bash w zakładce Terminal.
Nie dzieje się to natychmiast po otwarciu nowej karty. Uważam, że jest to efekt uboczny tego, co używałem na karcie problemu. Domyślam się, że ma to coś wspólnego z emulacją xterm, być może obszarem przewijania.
Co nie zadziałało:
  • Miękki i twardy reset za pomocą menu Shell
  • Biegać
             reset       
    w zakładce

Czy istnieje niezawodny sposób na zresetowanie terminala i/lub stanu xterma?
Czy ktoś może wyjaśnić, co się dzieje, nawet jeśli jedynym rozwiązaniem jest zamknięcie karty i otwarcie nowej?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Oznacza to, że terminal używa alternatywnego bufora ekranu. Istnieje ekran główny, który przewija się do historii przewijania wstecz i drugi ekran, który tego nie robi. Programy pełnoekranowe lub zorientowane na ekran, takie jak top, less, emacs, vim i screen domyślnie przełączają terminal na inny ekran.
Każdy ekran ma własną zawartość i stan. Posiadanie alternatywnego ekranu pozwala programom zajmować cały ekran, a następnie przywracać poprzednią zawartość po zamknięciu, przełączając się z powrotem do ekranu głównego.
Począwszy od systemu Mac OS X Lion 10.7, Terminal zawiera element menu, za pomocą którego można ręcznie przełączać ekrany:

Wyświetl & > Pokaż/ukryj alternatywny ekran

Ma to na celu przede wszystkim umożliwienie przeglądania lub kopiowania tekstu z innego ekranu po wyjściu z programu pełnoekranowego. Xterm ma podobne polecenie.
Można go również użyć do ręcznego wymuszenia na programie korzystania z określonego ekranu, na przykład do kontrolowania, czy dane wyjściowe znajdą się w dzienniku przewijania. Jeśli jednak obecnie używasz programu, który jawnie przełącza się na inny ekran, możesz się pomylić lub uzyskać nieoczekiwane wyniki, jeśli wymusisz przełączenie na ekran główny podczas działania programu, więc używaj tego ostrożnie.
W zależności od programu może mieć argument wiersza poleceń lub w inny sposób skonfigurować go do używania tego ekranu głównego. na przykład.,
         less -X
.
Niektóre wpisy terminfo są specjalnie zaprojektowane, aby na przykład powstrzymać użycie alternatywnego ekranu
         xterm1
.
         TERM=xterm1 emacs
uruchomi Emacsa na głównym ekranie. Nie polecam używania
         xterm1
na stałe, ponieważ wyłącza szereg innych przydatnych funkcji w porównaniu z ustawieniem domyślnym.
         xterm-256color
na Lion.
Możesz także przełączać ekrany za pomocą
         tput
polecenie do wydawania sekwencji ucieczki z powłoki lub skryptu.
         tput smcup
przełącza się na inny ekran i
         tput rmcup
przełącza się z powrotem na ekran główny.
Aby dowiedzieć się, który program jest aktualnie uruchomiony, spójrz na nazwę programu wyświetlaną w oknie Terminala lub w nagłówku karty albo w oknie Inspektora (

Powłoka & > Pokaż inspektora
). Ostatnim procesem wymienionym w Inspektorze jest (zwykle) bieżący program korzystający z ekranu. To jest to, co musisz skonfigurować, aby zamiast tego używać ekranu głównego.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się