2009-10-02 12 views
9

video che mostra il problema: http://www.mentaframework.org/download/TerminalBug.movMac Terminal.app fastidioso bug - Come risolvere il problema?

Quando sto scrivendo sulla Terminal.app e raggiungere la fine della linea, la riga successiva inizia sulla parte superiore della prima linea, sovrascrivendo tutto. Quindi se uso il tasto cancella tutto scompare e scompare.

Ho fatto un ssh nello stesso terminale a un host diverso e ha funzionato correttamente, quindi può essere un problema con la configurazione della mia shell?

Guarda il filmato per vedere cosa succede:

Grazie,

-Sergio

+0

Ciao Sergio. Probabilmente avrai miglior fortuna su http://superuser.com. –

+1

Il video è un collegamento interrotto. –

risposta

18

è necessario marcare i codici di escape nella variabile PS1 che si insediano il prompt di colore. La shell ha bisogno di sapere che non sono stampabili e quindi calcolerà il tuo ritorno a capo correttamente.

Ecco un link per una spiegazione e alcuni esempi:

http://www.artemfrolov.com/articles/coloured-bash-prompt

La punta rapida:

\[  begins a sequence of non-printing characters 
\]  ends a sequence of non-printing characters 
+0

Questo l'ha fatto !!! Grazie mille! – TraderJoeChicago

+0

Nessun problema. Felice di aiutare. –

+0

L'URL è rotto –

1

http://www.artemfrolov.com/articles/coloured-bash-prompt è attualmente vuota (come in, visitare il sito in Chrome/Firefox/Opera e vedi solo spazi bianchi, nessun contenuto). Così, dopo aver studiato l'esempio here, sto trovando che la conversione:

export PS1='\e[0;32m\[email protected]\h\e[m \D{%b %d} \t $ ' 

che si rompe, a

export PS1='\[\e[0;32m\]\[email protected]\h\[\e[m\] \D{%b %d} \t $ ' 

sembra funzionare per me (come un ulteriore, esempio specifico).

Separatamente, e un po 'off-topic, ma utile (almeno per il mio riferimento): per aggiornare il precedente con utile "percorso compressa" e in grassetto-verde user @ host nel prompt:

export MYPS='$(echo -n "${PWD/#$HOME/~}" | awk -F "/" '"'"'{if (length($0) > 14) { if (NF>4) print $1 "/" $2 "/.../" $(NF-1) "/" $NF; else if (NF>3) print $1 "/" $2 "/.../" $NF; else print $1 "/.../" $NF; } else print $0;}'"'"')' 
export PS1='\[\e[1;32m\]\[email protected]\h\[\e[m\] \D{%b %d} \t $(eval "echo ${MYPS}")$ ' 

** Modifica **: questo compito di PS1 (la seconda riga), imo, è molto più facile da leggere:

export MYPS='$(echo -n "${PWD/#$HOME/~}" | awk -F "/" '"'"'{if (length($0) > 14) { if (NF>4) print $1 "/" $2 "/.../" $(NF-1) "/" $NF; else if (NF>3) print $1 "/" $2 "/.../" $NF; else print $1 "/.../" $NF; } else print $0;}'"'"')' 
export PS1='[email protected]\[$(tput bold)\]$(hostname -s)\[$(tput sgr0)\] \D{%b %d} \t $(eval "echo ${MYPS}")$ ' 
+0

Perché ho ricevuto un downvote per quanto sopra? –

Problemi correlati