2012-05-15 19 views
13

Questo è strano perché non sono stato in grado di trovare una buona risposta con Google (ovviamente c'è sempre la possibilità che non riesca proprio a farlo). Nel mio prompt di bash, se applico una parte del prompt, quando premo 'su' per passare a un comando precedente, non posso andare all'inizio della riga dopo che ha superato una certa quantità di caratteri (in particolare 31) .Problema della cronologia dei numeri di Bash

mio prompt della bash corrente è questo: (i colori sono definiti in precedenza nel mio .bashrc)

PS1="[\[email protected]$cyan\h$NC \w] " 

Ma se cambio a questo:

PS1="[\[email protected]\h \w] " 

E non mi impedisce di andare all'inizio della linea.

La parte strana, è visivamente, quando ho colpito a casa per andare all'inizio della riga (o usare i tasti freccia) si ferma 11 caratteri per stringa, ma se modifico da lì, lo fa modificare iniziando dall'inizio della linea.

Qualcuno sa perché questo potrebbe accadere? Mi piacerebbe usare i colori nel mio prompt mentre eseguo l'amministrazione del server e i colori sono il modo in cui differenziare le mie scatole a colpo d'occhio.

risposta

25

Le sequenze non di stampa come i codici colore devono essere circondate da \[ e \] in modo che le loro lunghezze non vengano conteggiate come parte della lunghezza del prompt.

+1

[Esempi] (https://github.com/l0b0/tilde/blob/9161937d6173e65e81de145bbc7edbbb074e99e5/.bashrc#L92) – l0b0

+0

che era esattamente esso, grazie! –

+0

Ho avuto questo fastidioso problema per mesi. Grazie! +1 – jweyrich

Problemi correlati