Isso provavelmente é causado pela configuração do prompt zsh confuso sobre onde o cursor está no terminal. Você incluiu caracteres de controle de terminal no seu prompt sem informar ao zsh que eles não aparecerão no terminal.
Isso precisa ser feito cercando essas partes do prompt com %{
e %}
. Isso já foi feito ao definir a cor para amarelo e ao redefinir a cor, mas não foi feito onde você definiu a cor para roxo no início.