Naprawiono błędy związane z zawijaniem linii i wyświetlaniem backspace w Mac OS X?


14

Kiedy otwieram Terminal (w Mac OS X 10.5.8) i wpisuję długą linię poleceń: alternatywny tekst

... tekst nie przechodzi do następnego wiersza, gdy jest zawijany: alternatywny tekst alternatywny tekst

Czasami też, gdy wpisuję polecenie, a następnie backspace (lub strzałkę w górę lub ^ U): alternatywny tekst

... cała linia nie jest usuwana i nie mogę cofnąć się poza pewien punkt: alternatywny tekst alternatywny tekst

Czy to znany błąd bash (w systemie Mac OS X)? Czy jest jakaś poprawka?

Aktualizacja: Juliano miał rację, problem został spowodowany niepoprawnym rozgraniczeniem sekwencji kodu konsoli w mojej zmiennej PS1. Wymiana pieniędzy:

export PS1='\[\033[1;34m\]\$\]\033[0m\] '

... w moim .bashrccelu:

export PS1='\[\033[1;34m\]\$\[\033[0m\] '

...Rozwiązać problem.


1
+1 za najpiękniejsze zrzuty ekranu z terminalu, jakie kiedykolwiek widziałem.
Wstrzymano do odwołania.

1
dwie linie kodu pokazane w aktualizacji są identyczne.
Magne,

Dobry połów, @Magne. Minęły cztery lata, odkąd na to spojrzałem, więc nie pamiętam konkretnie, ale zakładam, że brakowało słowa „przed” \].
Daryl Spitzer

nie są identyczne: pierwszy ma \]zamiast „['
Ohad Cohen

Odpowiedzi:


19

Zachowanie jest spójne z wyświetlaniem w konsoli kodów konsoli (zmiana koloru itp.) I niepoprawnym oznaczaniem, aby bash wiedział, że są niewidoczne.

Przed cokolwiek innego zrób to:

PS1='\w\$ '

A potem spróbuj ponownie. Jeśli problem zostanie rozwiązany, moje podejrzenia są prawidłowe.

Każda sekwencja kodu konsola musi być rozdzielany z \[i \]w zmiennej PS1. Mówią bashowi, że cokolwiek tam jest, nie zmienia pozycji kursora. Przeczytaj instrukcję bash, aby uzyskać więcej informacji.


To był problem. Dziękuję Ci! Zaktualizuję moje pytanie o szczegóły.
Daryl Spitzer

A jeśli to nie rozwiąże problemu?
levesque

3

Aby pomóc w generowaniu sanitized monitu spróbuj http://www.kirsle.net/wizards/ps1.html jest całkiem niesamowity. Uważaj tylko na nawiasy kwadratowe, próbuje uciec przed nimi lub coś w tym rodzaju.


+1 Chociaż odpowiedź @ Juliano jest technicznie poprawna, ten link tutaj ustawia prawidłowe tputpolecenia - które naprawiły nowy wiersz, `` nowy wiersz i inne poprawki `` historia + odstępy '', których nie można naprawić za pomocą innych kodów ANSI.
Eric Duncan,
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.