Problemy z kursorem historii terminala Mac / iTerm

13

Tak często uruchamiam polecenie w Terminal.app lub iTerm, naciskam strzałkę w górę, aby wrócić do edycji, a kursor przeskakuje do linii powyżej lub gdzieś całkowicie w niewłaściwym miejscu. Dzieje się tak szczególnie wtedy, gdy polecenie jest tak długie, że zawija się do następnej linii. Czasami wszystkie te długie polecenia pojawiają się w jednym wierszu, a czasami są wyświetlane poprawnie w wielu wierszach.

Dzieje się tak zarówno w iTerm, jak i Terminal.app

Zdarza się również w trybach vi i emacs, co czyni je praktycznie bezużytecznymi.

jakieś pomysły? dzięki!

carillonator
źródło

Odpowiedzi:

21

Jest to najprawdopodobniej dlatego, że twoja definicja pytania zawiera sekwencje, których nie należy liczyć do długości pytania, na przykład do ustawiania kolorów. Sekwencje te powinny znajdować się pomiędzy \[i, \]aby zapobiec policzeniu ich długości. Oto przykład, w którym pojawia się całkowicie czerwony monit:

PS1='\[\033[31m\]\u@\h:\w\$\[\033[0m\]'
Wstrzymano do odwołania.
źródło
Ta linia znajduje się w pliku konfiguracyjnym (jak .bashrclub .bash_profile), dla każdego - jak ja - który nie ma pojęcia po przeczytaniu odpowiedzi.
montrealista