Я настроил причудливое двухстрочное PS1
приглашение bash с именем сервера, временем, именем пользователя и другими полезными переменными.
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\]"
Полный источник Github здесь .
Проблема в том, что длинные строки часто оборачиваются вокруг себя, а это означает, что новая строка перекрывает предыдущую.
Проблема несовместима: некоторые строки переносятся правильно, некоторые нет.
Есть идеи, как это исправить?
Нашел это решение онлайн, в котором предлагались закрывающие скобки для переменных цвета:
Изменить это:
чтобы:
Я совершил изменение - надеюсь, что оно работает как ожидалось.
источник
\[
\]
, так что вы не можете просто завершить все цвета ansi-escape,\]
потому что если нет\[
. Когда вы вводите непечатаемые символы, вы должны просто обернуть их\[
\]
(напримерPS1='\[\e[32;1m\] green prompt \[\e[0m\] $'
).Мое предпочтительное решение проблемы перекрытия длинных линий в bash PS1 состоит в том, чтобы
\n
в конце строки (ов) PS1 отображалась буква.например
Если вам нужны все мои другие вещи - время, пользователь, хост, каталог и ветка git (!), Вы можете использовать это (mac или linux):
/unix//a/124012/10043
источник
if [[ $(git rev-parse --is-inside-git-dir 2> /dev/null) ]]; then branch="$( git symbolic-ref --short -q HEAD 2> /dev/null )"; fi
. Это стандарт при вставке git в скрипт и оценке имени ветки из того, что я прочитал ранее.