Вопрос
Я использую из Linux, чтобы иметь цветную подсказку в моих оболочках, а также хочу реализовать это в моем OS X Terminal.App. Терминал реагирует по -разному, хотя. Если я использую свой обычный код PS1, правая сторона любой линии будет сокращена в странной точке (конечно, не правый конец окна клеммы). А также следующая строка не будет отображаться на следующей строке, а на той же строке.
Ожидаемая реакция:
erik2:~[06:46 am]$ expectedexpectedexpectedexpectedexpectedexpectedexpect
edexpected_
Настоящая реакция:
ectedexpected_am]$ expectedexpectedexpectedexpectedexp
Это нормально для терминала? Есть альтернатива? Я просто кодировал что -то не так? Посмотрите на мой код PS1:
export PS1="\033[0;34m\u:\W\e[0;32m[\@]\e[m\033[0;34m$\033[m "
Решение
Вам нужно избежать не напечатанных частей подсказки, окружая их \[…\]
.
export PS1="\[\033[0;34m\]\u:\W\[\e[0;32m\][\@]\[\e[m\033[0;34m$\033[m\] "
В противном случае, Readline запутается в оставшемся пространстве на командной строке.
Не связан с apple.stackexchange