Domanda

Sono abituato da Linux per avere un prompt di colore nelle mie conchiglie e anche voler implementare che nel mio OS X Terminal.app. I reagisce terminal diverso però. Se uso il mio codice PS1 normale sul lato destro di qualsiasi linea viene tagliato in un punto strano (sicuramente non l'estremità destra della finestra del terminale). E anche la riga successiva non verrà visualizzato sulla riga successiva, ma sulla stessa linea.

reazione attesa:

erik2:~[06:46 am]$ expectedexpectedexpectedexpectedexpectedexpectedexpect
edexpected_

vera reazione:

ectedexpected_am]$ expectedexpectedexpectedexpectedexp

È quello normale per Terminal? Esiste un'alternativa? Ho appena codice di qualcosa che non va? Date un'occhiata al mio codice PS1:

export PS1="\033[0;34m\u:\W\e[0;32m[\@]\e[m\033[0;34m$\033[m "
È stato utile?

Soluzione

Hai bisogno di fuggire le parti non si stampa del prompt circondandoli con \[…\].

export PS1="\[\033[0;34m\]\u:\W\[\e[0;32m\][\@]\[\e[m\033[0;34m$\033[m\] "

In caso contrario, readline si confonde circa lo spazio rimanente sulla riga di comando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a apple.stackexchange
scroll top