Mam problem polegający na tym, że jeśli wpisuję bardzo długie polecenia w bash, terminal nie wyświetla poprawnie tego, co wpisuję. Spodziewałbym się tego, gdybym miał takie polecenie:
username@someserver ~/somepath $ ssh -i /path/to/private/key
myusername@something.someserver.com
Polecenie powinno być renderowane w dwóch wierszach. Zamiast tego często się zawija i zaczyna pisać na górze mojego monitu, trochę tak:
myreallylongusername@something.somelongserver.comh -i /path/to/private/key
Jeśli zdecyduję się wrócić i zmienić jakiś argument, nie będzie wiadomo, gdzie pojawi się kursor, czasem w środku monitu, ale zwykle w wierszu powyżej, w którym piszę.
Dodatkowa zabawa dzieje się, gdy wykonuję Uppoprzednie polecenie. Próbowałem tego w gnome-terminalu i terminatorze oraz na i3 i Cinnamon. Ktoś zasugerował, że to moja zachęta, więc oto:
\[\033[01;32m\]\u:\[\033[01;34m\] \W\033[01;34m \$\[\033[00m\]
Ctrll, reset
i clear
wszyscy robią to, co mówią, ale kiedy ponownie wpisuję polecenie lub Updzieje się to samo.
Sprawdziłem i checkwinsize
jest włączony w bash. Dzieje się tak w przypadku okien o rozmiarze 80x24 i innych.
Czy to jest coś, z czym uczę się żyć? Czy jest jakaś magia, którą powinienem znać? Postanowiłem skorzystać z bardzo krótkiego monitu, ale to nie rozwiązuje problemu.
\[\033[01;32m\]\u: \[\033[01;34m\]\W \[\033[01;34m\] \$ \[\033[0m\]
wydaje się unikać dziwności w zachowaniu - ale nie wiem, czy całkowicie szanuje twoje pierwotne
tput smam
env -i bash --norc
naprawia to. $ COLUMNS i $ LINES pasują do siebie. Czy to oznacza, że w moim .bashrc jest coś śmiesznego?