2010/8/28 Tiberiu Popescu <[email protected]>:
> Salut,
>
> A mai patit cineva o aiureala de genul: m-apuc sa colorez promptul si totul
> arata bine dar in momentul in care introduc o comanda mai lunga ce depaseste
> capatul liniei in loc sa treaca pe cea de jos imi suprascrie linia originala
> ?

Da, am patit :)

>
> Am introdus export PS1="\e[1;32m...@\h \W]\$ \e[m" in ~/.bashrc.

Solutia este ca codurile de escapare ANSI (better translation, pls?)
trebuie incadrate de \[ si \] ca sa nu fie incluse in calculul de
lungime a liniei.

Uite daca te ajuta ce am eu in .bashrc (mie mi-e mai simplu sa lucrez
cu variabile sa nu ma pierd in serpisori cand modific PS1):

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
        # We have color support; assume it's compliant with Ecma-48
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
        # a case would tend to support setf rather than setaf.)
        color_prompt=yes
    else
        color_prompt=
    fi
fi


ESC="\033"
NORM=${color_prompt:+"\[$ESC[00m\]"}
RED=${color_prompt:+"\[$ESC[01;31m\]"}
GREEN=${color_prompt:+"\[$ESC[01;32m\]"}
YELLOW=${color_prompt:+"\[$ESC[01;33m\]"}
BLUE=${color_prompt:+"\[$ESC[01;34m\]"}
PURPLE=${color_prompt:+"\[$ESC[01;35m\]"}
CYAN=${color_prompt:+"\[$ESC[01;36m\]"}
WHITE=${color_prompt:+"\[$ESC[01;37m\]"}

GITPS1='$(__git_ps1 ":%s")'
PS1='${debian_chroot:+($debian_chroot)}'"${green...@\h${norm}:${BLUE}\w${NORM}${YELLOW}${GITPS1}${NORM}
\$ "

PS: chestiile cu __git_ps1 si debian_chroot sunt declarate prin alte
parti, mi-a fost lene sa le scot, importante sunt variabilele de
culori si (eventual) detectia de suport de culori, ajuta sa faci PS1
relativ complex si sa mentii o urma de readability.

PS2: nu uita sa afisezi si${NORM} cand termini cu culorile, ca sa
nu-ti faca bleed in command line.

Have fun!


-- 
Petre.
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui