Próbuję naprawić niewielki (ale irytujący) problem z moim monitem zsh. Problem, który widzę, polega na tym, że kiedy używam terminala w środowisku systemu operacyjnego GUI (na przykład Terminal.app lub iTerm 2 w OS X 10.7.2) i zmieniam rozmiar okna terminala, terminal jest przerysowany z dodatkowymi monitami .
Problem został odtworzony na czystym pliku .zshrc, który zawiera następujące elementy:
export PROMPT=">
"
Dla jasności jest to plik dwuwierszowy. Jest dosłowna nowa linia w ciągu, którą przeczytałem w kilku (co prawda starych ) miejscach, jest to najlepsza droga. Działa to do momentu zmiany rozmiaru okna terminala, w którym to momencie kończą się powielone ciągi znaków zachęty. Na przykład, jeśli otworzę nowe okno, widzę ( *
użycie symbolu zastępczego dla mojego kursora):
Last login: Wed Jan 25 19:05:06 on ttys000
>
*
Następnie, gdy zmieniam rozmiar okna, co czyni go krótszym, kończę na:
Last login: Wed Jan 25 19:05:06 on ttys000
>
>
>
>
*
Liczba dodatkowych szybkich wydruków wydaje się w przybliżeniu proporcjonalna do tego, jak bardzo zmieniam rozmiar okna - zwykle w pionie. Jeśli usunę znak nowej linii z ciągu zachęty, problem zniknie.
Próbowałem różnych rzeczy, $(print ">\n")
lub próbowałem zawinąć nową linię %{%}
. Zakładam, że ma to związek z faktem, że znak nowej linii myli wszystko, co rysuje, z tym, jak długi jest w rzeczywistości ciąg znaków zachęty lub coś takiego. Czy ten problem można naprawić, czy muszę po prostu z tym żyć?
print
to, że jest to polecenie specyficzne dla ZSH, a „druk linuksowy” Googlinga nie daje bardzo dobrych rezultatów.print
jest częścią Zsh. Możesz zobaczyć pomoc na ten temat wman zshbuiltins
. Bash ma swój odpowiednik, ale nie jestem pewien, czy są kompatybilne.Co powiesz na coś takiego:
źródło