Czy jest jakiś sposób, aby naprawić błędne obchodzenie się z zawijaniem wiersza na ekranie? (Może tylko Terminal.app)


9

Mam problem z używaniem screena i Terminal.app. Jeśli na dole ekranu pojawi się monit bashowy i będę pisać, dopóki linia nie zostanie zawinięta do następnej linii, widzę następną linię, ale nie widzę linii powyżej tej jednej zmiany.

Oto wizualny sposób zilustrowania mojego problemu. The | reprezentuje prawą stronę terminala.

Przed. Mój kursor znajduje się za trzecim „przykładem” i już niedługo napiszę „przykład”:

$ asdf                        |
bash: asdf: command not found |
$ example example example     |

Po. Zwróć uwagę, jak po zawinięciu ekran nie przewinął się, ale zamiast tego „zjadł” linię, w której byłem, i zaczął od nowa:

$ asdf                        |
bash: asdf: command not found |
ple                           |

Czego się spodziewałem (i co dzieje się bez użycia ekranu), to że cały ekran przewija się w dół o jeden po owinięciu.

bash: asdf: command not found |
$ example example example exam|
ple                           |

Wreszcie, co się stanie, jeśli przesunę kursor na zawiniętej linii na początek linii poleceń, zjadę poprzednią linię:

$ asdf                        |
$ example example example exam|
ple                           |

Masz pomysł, co się dzieje?


Terminal GNOME i ekran 4 są wyświetlane zgodnie z oczekiwaniami tutaj, FWIW. Z jakiej wersji korzystasz i czy zmieniłeś jakieś konfiguracje z domyślnej?
— Bernard,

Dzieje się tak po podłączeniu do dwóch różnych maszyn. Moja maszyna debian ma ekran 4 z niektórymi niestandardowymi konfiguracjami, a moje okno rhel 5.3 ma także ekran 4 bez niestandardowych konfiguracji i oba pudełka zachowują dokładnie to samo zachowanie.
— AlexMax

Mam dokładnie takie samo zachowanie. Innym objawem tego (nieopisanym powyżej) jest to, że po „zjedzeniu” poprzedniego wiersza, przy selekcji zdarzają się dziwne rzeczy. Rozpocznij wybieranie za pomocą myszy, a wszystko, co jest pod zaznaczeniem, będzie wyglądać poprawnie. Przykład: jeśli wybierzesz wiersz „$ asdf” w ostatnim przykładzie powyżej, nagle zmieni się on na „bash: asdf: polecenie nie znaleziono” (tak powinien powiedzieć poprzedni wiersz). To tak, jakby ekran właśnie nie narysował ponownie tych linii, ale powinien. To tak, jakby zapomnieć oznaczyć te linie jako brudne i trzeba je ponownie renderować.
— Ededified

W dowolnym momencie zaczyna się psuć, po prostu wybierz wszystko (COMMAND + A), aby bufor ekranu wyglądał poprawnie.
— Ededified

Nie stanowi to również problemu w iTerm.app
— zredagowano

Odpowiedzi:


7

Sukces! Wypróbowałem sugestię stąd:

/server/272818/screen-not-dropping-down-a-line

który ma dodać:

termcapinfo xterm* ti@:te@

do .screenrcekranu ponownego uruchamiania. To zmienia zachowanie przewijania ekranu na coś, co prawdopodobnie jest lepsze dla mojego przeciętnego przypadku użycia (np. Mogę używać przewijania w Terminalu, dopóki pozostaję w tym samym oknie), oprócz naprawienia problemu OP.

Mogę również potwierdzić problem w aplikacji Terminal.app 10.7.


Dobra robota detektywistyczna! Niestety jestem intensywnym użytkownikiem wielu okien ekranu, więc to nie zadziała dla mnie.
— AlexMax

to też nie działa dla mnie, gdy ssh do innego serwera, gdzie właśnie napotykam problem. nie jestem pewien, czy można to tak określićtermcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' ti@:te@
— Brian Thomas

2

Może to być „tryb przewijania w poziomie”. Uruchom następujące polecenie:

bind 'set horizontal-scroll-mode off'

i sprawdź, czy twoje objawy się zmienią. Jeśli tak, możesz ustawić to w ~ / .inputrc


1
w moim przypadku nie pomogło.
— Ededified

0

Przejdź do ustawień terminala i zmień ustawienie „Deklaruj terminal jako:” z „xterm-color” na „xterm”. To naprawiło to dla mnie (ale ma również konsekwencję wyłączenia altscreen :()


Skonfigurowałem już Terminal.app w ten sposób i nie pomaga mi to z moim problemem. Tryb przewijania w poziomie jest domyślnie wyłączony zgodnie ze stroną man screen, i nie widzę nigdzie, gdzie jest włączony. Porażka. Naprawdę chciałbym znaleźć rozwiązanie tego problemu.
— Tim Harper
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.