Kiedy otwieram Terminal (w Mac OS X 10.5.8) i wpisuję długą linię poleceń:
... tekst nie przechodzi do następnego wiersza, gdy jest zawijany:
Czasami też, gdy wpisuję polecenie, a następnie backspace (lub strzałkę w górę lub ^ U):
... cała linia nie jest usuwana i nie mogę cofnąć się poza pewien punkt:
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 .bashrc
celu:
export PS1='\[\033[1;34m\]\$\[\033[0m\] '
...Rozwiązać problem.
\]
.\]
zamiast „['Odpowiedzi:
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:
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.źródło
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.
źródło
tput
polecenia - 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.