Перекрытие длинных линий в Bash PS1 настроило подсказку

Я настроил воображение, с двумя строками PS1 колотите подсказку, с именем сервера, время, имя пользователя и другие полезные переменные.

PS1="\n\[\033[1;34m\]\342\226\210\342\226\210 \u @ $SERVER_NAME""$BBlue"" \w""$Color_Off  \n\[\033[0;36m\]\342\226\210\342\226\210 \d \t $ \[\033[0;39m\]"

enter image description here

Полный источник GitHub здесь.

Проблема состоит в том, что длинные линии часто переносятся вокруг себя, означая, что новая строка перекрывает предыдущий.

Проблема непоследовательна: некоторые строки перенесены правильно, некоторые не.

Какая-либо идея, как зафиксировать это?

13
задан 6 February 2013 в 05:07

3 ответа

Мое предпочтительное решение проблемы перекрытия длинных линий в ударе PS1 состоит в том, чтобы иметь a \n в конце PS1 запрашивают строку (строки).

например.

enter image description here

Если Вы хотите весь мой другой материал - время, пользователь, хост, каталог и ответвление (!) мерзавца, можно использовать это (Mac или Linux):

https://unix.stackexchange.com/a/124012/10043

0
ответ дан 6 February 2013 в 05:07

Вот мой необычный PS1 с двумя строками для подсказки удара.

PS1

\[\e[1;32m\]\H\[\e[0m\] :: \[\e[1;30m\]\d\[\e[0m\] \@ :: \[\e[1;33m\]\w\n\[\e[1;34m\]\u $ \[\033[0m\]

Таким образом, вот то, что я сделал. Если это было моим цветом:

\e[1;32m

Я изменил его на:

\[\e[1;32m\]

По существу необходимо включить его в:

\[$mycolor\]

Контроль этот ответ.

15
ответ дан 6 February 2013 в 05:07

Нашел это решение онлайн, в котором предлагались закрывающие скобки для переменных цвета:

Измените это:

Black='\e[0;30m'        # Black
Red='\e[0;31m'          # Red
Green='\e[0;32m'        # Green

на:

Black='\e[0;30m\]'        # Black
Red='\e[0;31m\]'          # Red
Green='\e[0;32m\]'        # Green
[ 117] Я совершил изменение - надеюсь, оно работает, как ожидалось.

0
ответ дан 6 February 2013 в 05:07

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

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