Linux: раскраска bash заставит сломать возврат каретки
Когда я пытаюсь раскрасить bash
подскажите как это:
export PS1="\e[0;31m[\u@\h \W]\$ \e[m "
он прерывает возврат каретки (вместо перехода на новую строку, когда строка заполнена, он начинается с той же строки и стирает введенный текст).
Если я уберу последовательность цветов, она будет работать нормально.
Я использую Ubuntu 11.10 и терминал (в guake та же ошибка).
2 ответа
Вы должны обернуть все escape-последовательности между \[
а также \]
для того, чтобы readline правильно вычислял видимую длину приглашения. Без них readline думает, что подсказка длиннее, и не знает, когда текст достигает поля.
PS1 = "\ [\ e [; 31 м\][\ u @ \ h \ W] \ $ \ [\ e [м\]"
[и] совет работал на bash и в OS X 10.8.2.
Я использую:
PS1 = "[\ e [0; 37 м \W\$(ветвь git 2>/dev/null | grep -e '* ' | sed 's/^..(.*)/{\1}/') \$ \e[м]"
который показывает мне мою текущую ветку git в использовании.