2009-10-02 30 views
9

Film pokazujący problem: http://www.mentaframework.org/download/TerminalBug.movMac Terminal.app denerwujący błąd - jak to naprawić?

Kiedy piszę na Terminal.app i dotrzeć do końca linii, następny wiersz zaczyna się na górze pierwszej linii, zastępując wszystko. Następnie, jeśli używam klawisza delete, wszystko zaczyna się znikać i znika.

Zrobiłem ssh w tym samym terminalu do innego hosta i działało dobrze, więc może to być problem z moją konfiguracją powłoki?

obejrzeć film, aby zobaczyć, co się dzieje:

Dzięki

-Sergio

+0

Witam Sergio. Prawdopodobnie będziesz miał więcej szczęścia na http://superuser.com. –

+1

Film wideo jest uszkodzonym linkiem. –

Odpowiedz

18

Trzeba zaznaczyć kody ucieczki w zmiennej PS1, które zakładają swoją kolorową wiersza. Muszą wiedzieć, że nie można ich wydrukować, a następnie prawidłowo obliczyć zawijanie linii.

Oto link do wyjaśnienia i kilka przykładów:

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

Szybka wskazówka:

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

To zrobiło to !!! Dziękuję bardzo! – TraderJoeChicago

+0

Bez problemu. Chętnie pomoże. –

+0

Adres URL jest zerwany –

1

http://www.artemfrolov.com/articles/coloured-bash-prompt jest aktualnie puste (jak można znaleźć w Chrome/Firefox/Opera i zobacz tylko białe spacje, brak treści). Więc po przestudiowaniu przykład here, jestem stwierdzenia, że ​​konwersja:

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

który pęknie, aby

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

wydaje się działać dla mnie (jako dodatkowy, konkretnym przykładzie).

oddzielnie i nieco off-topic, ale przydatny (przynajmniej moim odniesienia): do aktualizacji wyżej z pomocny „skompresowanej ścieżki” i pogrubionej-zielone użytkownik @ host w wierszu:

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}")$ ' 

** Edytuj **: to przypisanie PS1 (druga linia), imo, jest dużo łatwiejsze do odczytania:

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

Dlaczego otrzymałem zniżkę na powyższe? –

Powiązane problemy