Com a opção promptsubst
ativada, você pode fazer:
$ PS2='${${(%):-%_}// / -> }> '
$ for i
for> if
for -> if>
${(%)...}
permite a expansão imediata da expansão de ...
. ${:-text}
permite ter um texto arbitrário ${...}
expand. E nós aplicamos a substituição ${x//pat/reply}
nela. Isso pressupõe que a expansão de %_
não inclua %
caracteres.