Podczas wpisywania polecenia mój terminal często będzie się owijał

2

Mam więc bardzo dziwny problem z terminalem, który dotyczy zarówno sesji logowania fizycznego, jak i sesji nad SSH. Zasadniczo rozmiar terminala to pewna liczba kolumn. Podczas drukowania rzeczy będzie prawidłowo korzystać z tej liczby kolumn i owijać się w razie potrzeby. Jednak podczas wpisywania rzeczywistego polecenia użyje mniejszej liczby kolumn. Prawdopodobnie 90 lub 100 kolumn. W tym momencie okręci się do bieżącej linii (a nie do następnego razu). Jeśli zacznę cofać się za pomocą polecenia owiniętego, wtedy, gdy dotrze do miejsca, w którym zawija się wokół całej linii poleceń, zmieni się w pusty wiersz. Takie zachowanie występuje również po naciśnięciu klawisza strzałki w górę, aby powtórzyć poprzednie polecenie.

Co tu się właściwie dzieje i jak mogę to zatrzymać?

Wygląda na to, że wykonanie nowej sesji terminalowej zazwyczaj ją naprawia, ale wydaje się, że nic więcej nie zawiera reset.

Earlz
źródło
Jedna kontrolka jest znakiem niższym na początku linii edycji lub znakiem większym niż na końcu. Czy któryś z nich się pojawia?
JdeBP

Odpowiedzi:

2

Nie wiem, jak to działa, ale uruchamianie stty sanezazwyczaj naprawia dla mnie tego rodzaju problemy z terminalem.

Monit powłoki

Biorąc pod uwagę opis twojego problemu, podejrzewam, że problem może być związany z Twoją prośbą. Musisz być ostrożny przy ustawianiu podpowiedzi, które zawierają sekwencje ewakuacyjne ANSI, które zmieniają kolor itp. Niektóre z nich powodują, że bash uważa, że ​​podpowiedź zajmuje więcej miejsca niż w rzeczywistości. Zobacz naprawdę dobrą odpowiedź na pytanie Ubuntu .

musisz powiedzieć Bashowi, że ta sekwencja znaków nie powinna być liczona w długości znaku zachęty, a robisz to, zamykając ją w nawiasach kwadratowych \[ \].

Polecam również używanie tput zamiast kodowania sekwencji wyjściowych. Więcej informacji zawiera wprowadzenie BashFAQ 53 i kody terminali (ANSI / VT100) .

Anthony Geoghegan
źródło
Ciekawe ... robienie stty sane nie pomogło, ale będę musiała zajrzeć do szybkiej ucieczki. Jestem pewien, że nie podążam za tym
Earlz
Cześć @Earlz Zastanawiałem się, czy rozwiązałeś ten problem i czy był on powiązany z niedrukowalnymi znakami?
Anthony Geoghegan
0

IMO, jeśli już to zrobiłeś, resetnaprawdę nic więcej nie możesz zrobić. Ugryź pocisk i rozpocznij nową sesję terminalową.

Zasadniczo zdarza mi się, gdy / po I błędnie catzawartość pliku binarnego do terminalu. Jeśli jest nie do naprawienia, to jest nie do naprawienia.

xpt
źródło
Widziałem zwykle zrujnowany terminal z przechwytywania pliku binarnego, ale problem ten zdaje się występować znacznie częściej, a nie z tego
powodu
W takim przypadku, którego oprogramowania terminala używasz? Powodem, dla którego wybrałem, xtermjest unikanie takich przypadków, jak te, które nie są obsługiwane. Moja xtermbyła dość solidna, działa 24 godziny na dobę, 7 dni w tygodniu i rzadko zdarza mi się dostać do takiej sytuacji. Robię resetdla Xterm mniej niż raz w roku.
Xpt
BTW, komu kiedykolwiek to zagłosuję, proszę uzasadnić swoje działanie. Mów głośniej! Powiedz nam, dlaczego to robisz.
Xpt
dzieje się to zarówno przez SSH przy użyciu różnych emulatorów terminali (co najmniej 3 wypróbowane i pokazuje problem), jak i przez program terminala xfce
Earlz