У меня есть проблема, при которой, если я введу очень длинные команды в bash, терминал не отобразит то, что я печатаю правильно. Я ожидаю, что если бы у меня была команда, подобная следующей:
username@someserver ~/somepath $ ssh -i /path/to/private/key
myusername@something.someserver.com
Команда должна отображаться в две строки. Вместо этого он часто оборачивается и начинает писать поверх моей подсказки, примерно так:
myreallylongusername@something.somelongserver.comh -i /path/to/private/key
Если я решу вернуться и изменить какой-либо аргумент, я не скажу, где будет отображаться курсор, иногда в середине приглашения, но обычно в строке выше, где я печатаю.
Дополнительное веселье происходит, когда я Upк предыдущей команде. Я пробовал это и в терминале gnome, и в терминаторе, и на i3 и Cinnamon. Кто-то предположил, что это была моя подсказка, поэтому вот что:
\[\033[01;32m\]\u:\[\033[01;34m\] \W\033[01;34m \$\[\033[00m\]
Ctrll, reset
и clear
все делают то, что говорят, но когда я набираю команду обратно или происходит Upто же самое.
Я проверил и checkwinsize
включен в Bash. Это происходит в 80x24 и других размерах окна.
Это то, с чем я учусь жить? Есть ли какая-то магия, которую я должен знать? Я согласился только на использование очень короткого приглашения, но это не решает проблему.
\[\033[01;32m\]\u: \[\033[01;34m\]\W \[\033[01;34m\] \$ \[\033[0m\]
кажется, избегает странностей в поведении - но не знаю, уважает ли оно ваше первоначальное приглашение полностью ...
tput smam
env -i bash --norc
исправляет это. $ COLUMNS и $ LINES совпадают. Значит ли это, что с моим .bashrc что-то смешное?