Nie można powtórzyć pojedynczego znaku za pomocą Zsh


0

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% 

1
Czy możesz zamieścić wartości $ PS1 / $ PROMPT w zsh? Brzmi trochę jak niekompletna sekwencja. (wiesz też, że możesz biegać /bin/zshbezpośrednio, bez użycia chsh ...)
grawity

Dodano informacje do wpisu. Problem z formatowaniem kodu.
Phil Winder,

Po prostu echo $PS1może nie pokazywać wadliwych sekwencji ucieczki, ponieważ wbudowane w Zsh echodomyślnie ocenia kody ucieczki. echo -E $PS1Zamiast tego uruchom . To może być również warto sprawdzić, czy coś jest drukowana w precmdlub preexechakiem: whence precmd preexec $precmd_functions $preexec_functions. Czy problem występuje również po uruchomieniu zshbez konfiguracji zsh -f:?
Adaephon
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.