Настройка командной строки и поведение cmd

Я хочу, чтобы моя подсказка отображала:

  1. текущий (абсолютный) рабочий каталог, окрашенный в зеленый цвет, и

  2. в новой строке, знак доллара и пустое место.

Я использую эту строку в .profile

export PS1='\e[0;32m$(pwd)\n\e[m$ '

Так, когда, например, Desktop, моя подсказка выглядит так:

Однако иногда при нажатии стрелки вверх для повторного запуска предыдущих команд, в в начале подсказки появляется случайная последовательность символов, которая, кажется, не исчезнет, ​​если я не нажму enter, e. г.

Я никогда не попадал в команду cd cd Desktop. Самое странное, что backspace даже не удалит первую из двух команд cd выше!

Есть предложения?

4
задан 25 April 2017 в 20:16

2 ответа

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

PS1='\[\e[0;32m\]$PWD\n\[\e[m\]$ '
6
ответ дан 26 April 2017 в 06:16

В первую очередь, большое спасибо @Zanna для указания на корректный способ пойти об этом.

Ради более полного ответа я развернул решение, которое включает:

a) cwd в зеленом цвете

b) в Новой строке, ответвление мерзавца (если таковые имеются) в желтоватом цвете с красной звездой, если ответвление грязно

Для выполнения b мерзавец, осведомленная подсказка необходима

Это проходит примерно так как заключительная строка в ~/.bashrc

export PS1='\[\e[0;32m\]$PWD\n\[\e[m\]\[\e[0;33m\]$git_branch\[\e[m\]\[$txtred\]$git_dirty\[$txtrst\]$ '

Подсказка теперь, надо надеяться, расширится до sth как это, если Вы будете на ответвлении мерзавца

enter image description here

2
ответ дан 26 April 2017 в 06:16

Другие вопросы по тегам:

Похожие вопросы: