# zacheta w konsoli

## maloj

Witam,

Zainstalowalem sobie Gentoo, ale musze przyznac, ze neico denerwuje mnie konsola. Mianowicie pomijajac zbedne kolorki zacheta wyglada mniej wiecej tak:

user@host katalog

przy czym przyzwyczajony bylem zawsze do

user@host sciezka/do/danego/katalogu

Innymi slowy beda np. w /usr/local/lib widze:

user@host lib

a to moze byc prawie wszedzie, jesli nie znam pelnej sciezki. Jak zrobic, zeby wyswietlala sie pelna sciezka? Od czego to zalezy? Od loggera, powloki? Czy taki urok Gentoo?  :Wink: 

----------

## arsen

powłoka, te ustawienia masz w /etc/profile a jak chcesz to możesz zrobić dla siebie w ~/.bashrc

----------

## nelchael

 *maloj wrote:*   

> Witam,
> 
> Zainstalowalem sobie Gentoo, ale musze przyznac, ze neico denerwuje mnie konsola. Mianowicie pomijajac zbedne kolorki zacheta wyglada mniej wiecej tak:
> 
> user@host katalog
> ...

 

Ja mam takie cus:

```
PS1="\[\e[06;33m\]\u@\h$\[\e[0m\] \[\e[06;32m\]\W\[\e[0m\]\$ "

```

Zamien \W na \w i po sprawie  :Smile: 

----------

## joker

ale patrzac z drugiej strony jak bedziesz gdzies w n-tym podkatalogu to bedziesz mial zachete na 3/4 ekranu  :Smile: 

a wystarczy wpisac

```
pwd
```

----------

## maloj

 *joker wrote:*   

> ale patrzac z drugiej strony jak bedziesz gdzies w n-tym podkatalogu to bedziesz mial zachete na 3/4 ekranu 
> 
> 

 

Moje czcionki sa raczej niewielkie, maksymalnie mialem kiedys na 3/4 linijki i to wylacznie dlatego, ze nazwy katalogow byly dlugasne, takze w tej kwestii jest raczej spokojowo.

Niemniej dzieki wszystkim za podpowiedz!

----------

## ketjow

lekko OT: wie ktos, jak zrobic, zeby komenda, ktora przekracza linie sie zawijala? Bo jak wpisze komende, ktora jest za dluga, to zaczyna sie ona pojawiac znowu z lewej strony, jak sie skonczy ekran z prawej. nie wiem, czy ktos mnie zrozumie, ale jakby ktos znal rozwiazanie to poprosze  :Smile: 

----------

## joker

 *Quote:*   

> wie ktos, jak zrobic, zeby komenda, ktora przekracza linie sie zawijala? Bo jak wpisze komende, ktora jest za dluga, to zaczyna sie ona pojawiac znowu z lewej strony, jak sie skonczy ekran z prawej.

 

 to jest wlasnie chyba zawijanie  :Smile: 

----------

## nelchael

 *ketjow wrote:*   

> lekko OT: wie ktos, jak zrobic, zeby komenda, ktora przekracza linie sie zawijala? Bo jak wpisze komende, ktora jest za dluga, to zaczyna sie ona pojawiac znowu z lewej strony, jak sie skonczy ekran z prawej. nie wiem, czy ktos mnie zrozumie, ale jakby ktos znal rozwiazanie to poprosze 

 

Jakiego masz PS1?? jesli sa znaki, ktorych nie drukuje (np. zmiana koloru) a nie sa .... 'escape' to bedzie wlasnie taki efekt

----------

## ketjow

nie o to chodzi - 

pisze sobie polecenie - konczy mi sie linijka, wiec on mi zaczyna pisac w tej samej linii z lewej strony i nadpisuje tekst, ktory wczesniej tam byl - i robi sie niemaly *burdel* (robi sie to pod konsola)

fajnie by bylo to miec tak jak w xterm'ie, gdzie po prostu przechodzi z tekstem do nastepnej linii.

w PS1 mam troche escape'ow  :Smile: 

----------

## ketjow

aj - faktycznie. wylaczylem escape'y i dziala. mozna to jakos ominac? bo ja chce miec kolorowa zachete:)

----------

## nelchael

 *ketjow wrote:*   

> aj - faktycznie. wylaczylem escape'y i dziala. mozna to jakos ominac? bo ja chce miec kolorowa zachete:)

 

Popatrz na te dwie zachety:

```
\[\e[06;33m\]\u@\h$\[\e[0m\] \[\e[06;32m\]\W\[\e[0m\]$
```

i

```
\e[06;33m\u@\h$\e[0m \e[06;32m\W\e[0m$
```

Widac roznice? Obydwa wyswietla identycznego prompta, ale: w pierwszym przypadku kolor to sekwencja: \[\e[..;..m\], w drugim kolor to juz tylko \e[..;..m

A teraz zgadnij, ktory sie rypie w ten sposob jaki opisujesz.

----------

## ketjow

dzieki wielkie - nie wiem dlaczego, ale dziala:)

----------

## fallow

jeszcze odnosnie zachety i zsh , tak teoretycznie , da sie jakos przekonwertowac prompt np. jeden z tych ktore dostaje sie emergujac zsh dla basha ? 

pozdro  :Smile: 

----------

## nelchael

 *fallow wrote:*   

> jeszcze odnosnie zachety i zsh , tak teoretycznie , da sie jakos przekonwertowac prompt np. jeden z tych ktore dostaje sie emergujac zsh dla basha ? 
> 
> 

 

A jak wygladaja prompty zsh?

----------

## fallow

aktualny z ktorego korzystam jest taki : 

```

function precmd {

    local TERMWIDTH

    (( TERMWIDTH = ${COLUMNS} - 1 ))

    ###

    # Truncate the path if it's too long.

    PR_FILLBAR=""

    PR_PWDLEN=""

    local promptsize=${#${(%):---(%n@%m:%l)---()--}}

    local pwdsize=${#${(%):-%~}}

    if [[ "$promptsize + $pwdsize" -gt $TERMWIDTH ]]; then

            ((PR_PWDLEN=$TERMWIDTH - $promptsize))

    else

        PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize + $pwdsize)))..${PR_HBAR}.)}"

    fi

    ###

    # Get APM info.

##    if which ibam > /dev/null; then

##      PR_APM_RESULT=`ibam --percentbattery`

##    elif which apm > /dev/null; then

##      PR_APM_RESULT=`uname -r`

##    fi

}

setopt extended_glob

preexec () {

    if [[ "$TERM" == "screen" ]]; then

        local CMD=${1[(wr)^(*=*|sudo|-*)]}

        echo -n "\ek$CMD\e\\"

    fi

}

setprompt () {

    ###

    # Need this so the prompt will work.

    setopt prompt_subst

    ###

    # See if we can use colors.

    autoload colors zsh/terminfo

    if [[ "$terminfo[colors]" -ge 8 ]]; then

        colors

    fi

    for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do

        eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'

        eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'

        (( count = $count + 1 ))

    done

    PR_NO_COLOUR="%{$terminfo[sgr0]%}"

    ###

    # See if we can use extended characters to look nicer.

    typeset -A altchar

    set -A altchar ${(s..)terminfo[acsc]}

    PR_SET_CHARSET="%{$terminfo[enacs]%}"

    PR_SHIFT_IN="%{$terminfo[smacs]%}"

    PR_SHIFT_OUT="%{$terminfo[rmacs]%}"

    PR_HBAR=${altchar[q]:--}

    PR_ULCORNER=${altchar[l]:--}

    PR_LLCORNER=${altchar[m]:--}

    PR_LRCORNER=${altchar[j]:--}

    PR_URCORNER=${altchar[k]:--}

    ###

    # Decide if we need to set titlebar text.

    case $TERM in

        xterm*)

            PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}'

            ;;

        screen)

            PR_TITLEBAR=$'%{\e_screen \005 (\005t) | %(!.-=[ROOT]=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\e\\%}'

            ;;

        *)

            PR_TITLEBAR=''

            ;;

    esac

    ###

    # Decide whether to set a screen title

    if [[ "$TERM" == "screen" ]]; then

        PR_STITLE=$'%{\ekzsh\e\\%}'

    else

        PR_STITLE=''

    fi

    ###

    # APM detection

    if which ibam > /dev/null; then

        PR_APM='$PR_RED${${PR_APM_RESULT[(f)1]}[(w)-2]}%%(${${PR_APM_RESULT[(f)3]}[(w)-1]})$PR_LIGHT_BLUE:'

    elif which apm > /dev/null; then

        PR_APM='$PR_RED${PR_APM_RESULT[(w)5,(w)6]/\% /%%}$PR_LIGHT_BLUE:'

    else

        PR_APM=''

    fi

    ###

    # Finally, the prompt.

    PROMPT='$PR_SET_CHARSET$PR_STITLE${(e)PR_TITLEBAR}\

$PR_CYAN$PR_SHIFT_IN$PR_ULCORNER$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\

$PR_GREEN%(!.%SROOT%s.%n)$PR_GREEN@%m:%l\

$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_HBAR${(e)PR_FILLBAR}$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\

$PR_MAGENTA%$PR_PWDLEN<...<%~%<<\

$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_URCORNER$PR_SHIFT_OUT\

$PR_CYAN$PR_SHIFT_IN$PR_LLCORNER$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\

%(?..$PR_LIGHT_RED%?$PR_BLUE:)\

${(e)PR_APM}$PR_YELLOW%D{%H:%M}\

$PR_LIGHT_BLUE:%(!.$PR_RED.$PR_WHITE)%#$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\

$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\

$PR_NO_COLOUR '

    RPROMPT=' $PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_BLUE$PR_HBAR$PR_SHIFT_OUT\

($PR_YELLOW%D{%a,%b%d}$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_LRCORNER$PR_SHIFT_OUT$PR_NO_COLOUR'

    PS2='$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\

$PR_BLUE$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT(\

$PR_LIGHT_GREEN%_$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\

$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT$PR_NO_COLOUR '

}

setprompt

```

----------

## nelchael

Nie wlecze sie zsh przez takie prompty? tozto musi troszke potrwac  :Neutral: 

----------

## fallow

noo. trwa to z 1s za pierwszym razem , potem juz "w oka mgnieniu"  :Smile:  , no ale fakt , bash "blyskawicznie"

pozdro  :Smile: 

ale milo to wyglada  :Smile: 

----------

## nelchael

Jakos przyzwyczailem sie do prompta bez wodotryskow - jakos nie widze potrzeby  :Laughing: 

----------

## fallow

ja  tez , dopoki nie zobaczylem na jakims screenie prompta phranzee`iego  :Smile:  hehe.

potem zachcialo mi sie miec jakis taki.

http://www.lynucs.org/index.php?screen_id=48337604641360cb3066d7&p=screen

pozdro  :Smile: 

----------

## nelchael

Jak mozna z czyms takim pracowac?!?!   :Shocked: 

----------

## fallow

mnie sie podoba ( jak narazie  :Razz:  )  :Smile: 

pozdro  :Smile: 

----------

## ketjow

ja tam wole moja uboga, ale zawijajaca sie zachete  :Smile:  Na takiej jak phranzee'iego chyba nie moglby pracowac - wiekszy prompt niz komenda:/

----------

## fallow

screenshot phranzee`iego  :Smile:  -> http://157.158.1.3/~thriadae/desktops/screenshot-20040825_154441.png

ten wyzej byl moj  :Smile:  ale prompt podobny...

mam tylko problem z mc https://forums.gentoo.org/viewtopic.php?t=217397 , ale w ogole zsh ma kupe mozliwosci  :Smile: 

----------

## nelchael

Zgadzam sie z ketjow - dla mnie to ani praktyczne ani potrzebne  :Laughing: 

----------

## fallow

hehe , no ten prompt to bajer , z rezta widac ze ma bajeromatyczny wyglad  :Smile:  , ale mozliwosci samego zsh sa _duze_  :Smile:  ale jesli nie znajde rozwiazania z mc......  :Sad:  :Sad: 

gdzie ten phranzee  :Wink: 

pozdro  :Smile: 

dobra , koncze juz post_count++; w tym watku hehe  :Smile: 

----------

## Robert W.

 *fallow wrote:*   

> hehe , no ten prompt to bajer , z rezta widac ze ma bajeromatyczny wyglad  

 

Mam pytanie do fallowa. Jaka czcionka jest użyta w tym prompcie?

----------

## fallow

jeslo chodzi CI o moj screen to byla to : 

```

Consola*font:*-*-fixed-medium-r-normal--*-120-*-*-*-*-iso8859-2 
```

pozdro  :Smile: 

----------

## Robert W.

 *fallow wrote:*   

> jeslo chodzi CI o moj screen to byla to : 
> 
> ```
> 
> Consola*font:*-*-fixed-medium-r-normal--*-120-*-*-*-*-iso8859-2 
> ...

 

Dzięki.

----------

