Skonfigurowałem fantazyjny dwuliniowy PS1
monit bash z nazwą serwera, czasem, nazwą użytkownika i innymi przydatnymi zmiennymi.
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\]"
Pełne źródło Github tutaj .
Problem polega na tym, że długie linie są często owijane wokół siebie, co oznacza, że nowa linia nakłada się na poprzednią.
Problem jest niespójny: niektóre wiersze są poprawnie opakowane, inne nie.
Jakiś pomysł jak to naprawić?
Znaleziono to rozwiązanie online, które sugeruje nawiasy zamykające do zmiennych kolorów:
Zmień to:
do:
Mam popełnione zmiany - mam nadzieję, że działa zgodnie z oczekiwaniami.
źródło
\[
\]
, więc nie możesz po prostu zakończyć wszystkich kolorów ucieczki ansi,\]
ponieważ co, jeśli nie ma\[
. Kiedy umieszczasz znaki niedrukowalne, powinieneś po prostu je owinąć\[
\]
(npPS1='\[\e[32;1m\] green prompt \[\e[0m\] $'
.).Moim preferowanym rozwiązaniem problemu nakładania się długich linii w bash PS1 jest umieszczenie
\n
na końcu linii poleceń PS1.na przykład
Jeśli chcesz wszystkich moich innych rzeczy - czasu, użytkownika, hosta, katalogu i gałęzi git (!), Możesz użyć tego (Mac lub Linux):
/unix//a/124012/10043
źródło
if [[ $(git rev-parse --is-inside-git-dir 2> /dev/null) ]]; then branch="$( git symbolic-ref --short -q HEAD 2> /dev/null )"; fi
. Jest to standard podczas wstawiania gita do skryptu i oceny nazwy gałęzi na podstawie tego, co przeczytałem wcześniej.