Weird line wrapping in terminal con un prompt colorato

5

Ho motivo di pensare di avere una escape non corretta nel mio prompt di bash (ottengo uno strano allineamento casuale di righe nel terminale).

Qualcuno può segnalarlo? Mi sembra OK ...

export PS1="3[0;35m\u3[00m on 3[0;36m\h3[00m in 3[0;33m\w3[00m \$ "
    
posta boozedog 09.04.2013 - 22:32
fonte

1 risposta

7

Includi i tuoi colori tra parentesi [] in modo che contino come caratteri non stampabili .

export PS1="\[3[0;35m\]\u\[3[00m\] on \[3[0;36m\]\h\[3[00m\] in \[3[0;33m\]\w\[3[00m\] \$ "

Sfortunatamente, questo si traduce in problemi di line wrapping noti che sono afflitti da bash.

Ci sono buone notizie a tutti, la luce alla fine del tunnel è tput .

echo $(tput setaf 6) This is cyan

Imposta prima tutte le variabili, quindi usale all'interno dello script.

mg=$(tput setaf 5);cy=$(tput setaf 6);yl=$(tput setaf 3);rs=$(tput sgr0); echo $mg $USER $cy $HOSTNAME $yl $PWD $rs

Puoi trovare uno script di esempio nel mio github dotfiles repo

    
risposta data 09.04.2013 - 23:00
fonte

Leggi altre domande sui tag