Настройка командной строки и поведение cmd
Я хочу, чтобы мое приглашение отображало:
текущий (абсолютный) рабочий каталог, выделен зеленым и
в НОВОЙ строке знак доллара и пустое место.
Я использую эту строку в .profile
export PS1='\e[0;32m$(pwd)\n\e[m$ '
Так, когда, например, в Desktop моя подсказка выглядит так:
Однако иногда при нажатии стрелки вверх для повторного запуска предыдущих команд в начале запроса появляется случайная последовательность символов, которая, похоже, не исчезнет, если я не нажму клавишу ввода, например
Я никогда не ударил cd cd Desktop команда. Самое странное, что Backspace даже не удалит первый из двух cd Команды выше!
Какие-либо предложения?
2 ответа
Вы должны убедиться, что непечатаемые символы в приглашении заключены в экранированные квадратные скобки, иначе bash не сможет правильно рассчитать размер приглашения. Я думаю, что я установил это для вас:
PS1='\[\e[0;32m\]$PWD\n\[\e[m\]$ '
Прежде всего, большое спасибо @Zanna за то, что он указал правильный путь для этого.
Ради более полного ответа я расширил решение, которое включает в себя:
а) cwd зеленого цвета
б) в новой строке ветка git (если есть) желтоватого цвета с красной звездой, если ветка грязная
Чтобы выполнить b, необходима подсказка git осведомлена
Это выглядит как последняя строка в ~/.bashrc
export PS1='\[\e[0;32m\]$PWD\n\[\e[m\]\[\e[0;33m\]$git_branch\[\e[m\]\[$txtred\]$git_dirty\[$txtrst\]$ '
Теперь мы надеемся, что приглашение будет расширяться до sth, если вы находитесь на ветке git

