Portál AbcLinuxu, 30. dubna 2025 17:04
if [[ ${EUID} == 0 ]]; then PS1="\e[41;30m \w \$([[ \$? != 0 ]] && echo \"\e[31m:( \")\e[31;49m$(echo -e '\xee\x82\xb0')\e[00m " else PS1="\e[44;30m \w \$([[ \$? != 0 ]] && echo \"\e[31m:( \")" PS1="$PS1\$(\ export GIT_BRANCH=\"\$(git branch --no-color 2>/dev/null | grep '*' | cut -d\" \" -f2-)\"; \ if [ -n \"\$GIT_BRANCH\" ] ; then \ echo -en \"\e[43;34m\xee\x82\xb0 \" echo -en \"\e[43;30m\$GIT_BRANCH \" echo -en \"\e[33;49m\xee\x82\xb0\e[00m \" else echo -e \"\e[34;49m$(echo -e '\xee\x82\xb0')\e[00m \" fi \ )" fi
Prompt používá běžné formátování pomocí escape sekvencí (třeba \e[30m je černý text), utf8 zápis unicode znaku EOB0 pro šipku a nakonec vypsání aktuální větve v gitu.
Stáhnout, nebo vylepšit ho můžete na gistu.
UPDATE: Pro správné zobrazení jsou potřeba powerline fonty.
UPDATE2: V gistu jsou zapracované připomínky z diskuze.
Tiskni
Sdílej:
~/.zshrc
nastavit CASE_SENSITIVE="true"
. Nebo jen odkomentovat, ta volba by už tam měla být.
I problém s doplňováním gitu by měl být věcí konfigurace.
Nastavení gitu jsem ale nikde nenašelZkus v
zshrc
nastavit plugin na doplňování gitu na gitfast
:
plugins=(gitfast)
$(echo -e '\xee\x82\xb0')na
$'\xee\x82\xb0'Dalej uprednostnujem vidiet navratovu hodnotu (ak je nenulova), nez len ":(". Co sa da zase ziskat bez subprocesu:
${?/#0}Takze cely:
PS1="\e[41;30m \w \$([[ \$? != 0 ]] && echo \"\e[31m:( \")\e[31;49m$(echo -e '\xee\x82\xb0')\e[00m "by sspravit uplne bez subprocesov (a mat pre mna vacsiu informacnu hodnotu):
PS1="\e[41;30m \w \${?/#0}\e[31;49m"$'\xee\x82\xb0'"\e[00m "Ten git-branch asi uplne bez subprocesov nepojde, ale cim menej tym lepsie. Az raz budes pracovat na fakt zatazenom serveri, tak uvidis ten rozdiel. Dva procesy su daleko horsie ako jeden. Vytvorenie procesu je strasna vec oproti jeho vlastnej praci
grep '*' | cut -d\" \" -f2-na
sed -n 's/*[^ ]* //p'A az sa prihlasis z nejakeho terminalu, ktory nema prave vsetky Unicode znaky, tak budes cumiet, ako tvoje sipky vyzeraju. Vyskusaj Putty z Windows napr.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.