Вопрос

Я использую из 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 запутается в оставшемся пространстве на командной строке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с apple.stackexchange
scroll top