A opção relevante provavelmente é PROMPT_SP , explanação do manual
Attempt to preserve a partial line (i.e. a line that did not end with a newline) that would otherwise be covered up by the command prompt due to the PROMPT_CR option. This works by outputting some cursor-control characters, including a series of spaces, that should make the terminal wrap to the next line when a partial line is present (note that this is only successful if your terminal has automatic margins, which is typical).
When a partial line is preserved, by default you will see an inverse+bold character at the end of the partial line: a
%for a normal user or a#for root. If set, the shell parameterPROMPT_EOL_MARKcan be used to customize how the end of partial lines are shown.
Então, você faz um
unsetopt PROMPT_SP
se você não se importa com a linha encoberta (no entanto, no seu caso, parece ser uma linha vazia, já que você recebe o sinal % no começo).
Ou use
setopt PROMPT_CR
setopt PROMPT_SP
export PROMPT_EOL_MARK=""
que preserva linhas parciais, mas remove o % - ao custo de algumas linhas vazias sobre o prompt.
Para tornar isso permanente, atualize seu ~/.zshrc .
Esta é uma foto cega, já que não consigo reproduzir esse comportamento no meu cmd.exe .