Parece que os códigos ANSI estão mexendo com o seu terminal, possivelmente devido a algumas interações com o outro conteúdo de PS1 ou porque você não redefine para o padrão.
Felizmente, em zsh não há necessidade de usar códigos de escape ANSI. Você pode usar %F{color} e %K{color} para definir cores de primeiro e segundo plano respectivamente e %f e %k para redefinir os valores padrão (consulte o Zsh Manual para mais informações)
Qualquer um deles deve fazer o truque:
PS1='%5Fandrew%f@%3Fmacbook%f:%~$ '
PS1='%F{5}andrew%f@%F{3}macbook%f:%~$ '
PS1='%F{magenta}andrew%f@%F{yellow}macbook%f:%~$ '
Eu usei %f em vez de %7F ou %F{white} , supondo que você realmente quisesse desabilitar a cor desse lugar (portanto, nomeando a variável D em vez de WHITE ). Se você quiser usar %F{white} , deverá colocar um %f no final de PS1 .
Se você usa um terminal de 88 cores ou 256 cores, você pode até mesmo usar esses índices dessas cores. Por exemplo, %F{221} te daria um amarelo escuro.
Observe também que geralmente é desnecessário export PS1 in zsh - ou bash .
