4

Мне нравится использовать настраиваемое приглашение (текущий путь синим цветом) на моей машине с Unix:

export PS1='\[\e[0;34m\]\w \$\[\e[m\] '

Но когда я пытаюсь использовать его на терминале Mac, он не работает: он не может определить конец приглашения и перезаписывает приглашение при вводе команд. Это также происходит, когда я ввожу длинную команду, где она переносится на одну и ту же строку, а не на новую строку.

Я не понимаю, почему это так, поскольку я использую bash на обеих машинах. Любые предложения о том, как это исправить?

3 ответа3

3

Я не уверен, почему вы получаете разные результаты, но правильное значение должно быть

export PS1='\[\e[0;34m\]\w \$\[\e[m\] '

Непечатаемые символы должны быть заключены в \[ \] , чтобы bash мог вычислить правильную длину подсказки на экране (для позиционирования курсора).

2

Попробуйте поместить его в обычные двойные кавычки "" вместо этих "одинарных кавычек. Работал на меня. Также работает с iTerm и терминалом Mac OS X.

0

\[\e[ стал [\e[ в посте, когда он не был отформатирован как код. Извините за путаницу. Я решил проблему, обновив bash с 3.0 до 4.2 на моем Mac.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .