Konfiguracja: OSX 10.11.5 El Capitan. Domyślnie (5.0.8) i / lub brew zainstalowany zsh (5.2).
Mam dziwne problemy z zsh, gdzie wydaje się: a) maskować pojedyncze znaki ib) dodaje dziwne znaki kontrolne. Powoduje to problemy z rurami i analizą składni. Wygląda na to, że zsh dodaje dodatkowe znaki lub usuwa je. Nie zawsze tak było, więc myślę, że może to być problem z konfiguracją.
Zakładam, że oba problemy są powiązane i pierwszy jest łatwiejszy do replikacji.
Jeśli ustawię moją powłokę na bash, mogę uruchomić następujące czynności:
Phils-MBP-7:~ phil-mac$ echo -n A
APhils-MBP-7:~ phil-mac$
Teraz, jeśli ustawię moją powłokę na zsh:
Phils-MBP-7:~ phil-mac$ chsh -s /bin/zsh
...
Phils-MBP-7% echo -n A
Phils-MBP-7%
Phils-MBP-7% echo -n AA
AA% Phils-MBP-7%
Zwróć uwagę, że nie ma wersji jednoznakowej, a wydaje się, że wersja AA dodała nową linię. Z pewnością ma to coś wspólnego z zsh próbującym i nie czyniącym ładnego wyniku.
Nie jestem również pewien, czy jest to powiązane, ale w terminalu znajduje się mały niebieski lewy nawias kwadratowy, który pojawia się w wierszu powyżej po naciśnięciu klawisza return.
Jakieś pomysły? Z góry dziękuję.
Edycje:
Wynik podczas bezpośredniego uruchamiania / bin / zsh:
Phils-MBP-7:~ phil-mac$ /bin/zsh
Phils-MBP-7% echo $PS1/$PROMPT
%m%# /%m%#
Phils-MBP-7% echo -n A
Phils-MBP-7%
Phils-MBP-7%
Edycja 2: Tak, trwa bez konfiguracji:
Phils-MBP-7:~ phil-mac$ zsh -f
Phils-MBP-7% echo -n A
Phils-MBP-7%
Ponowne uruchomienie echa:
Phils-MBP-7% echo -E $PS1
%m%#
I nic nie jest drukowane w zaczepach przed poleceniem (myślę, że o to ci chodziło @Adaephon):
Phils-MBP-7% whence precmd preexec $precmd_functions $preexec_functions
Phils-MBP-7%
$PS1
może nie pokazywać wadliwych sekwencji ucieczki, ponieważ wbudowane w Zsh echo
domyślnie ocenia kody ucieczki. echo -E $PS1
Zamiast tego uruchom . To może być również warto sprawdzić, czy coś jest drukowana w precmd
lub preexec
hakiem: whence precmd preexec $precmd_functions $preexec_functions
. Czy problem występuje również po uruchomieniu zsh
bez konfiguracji zsh -f
:?
/bin/zsh
bezpośrednio, bez użycia chsh ...)