Ative definindo essas opções
setopt autopushd
setopt pushdminus
use então com os seguintes comandos:
[tim@host] ~% cd
[tim@host] ~% cd /
[tim@host] /% cd /tmp
[tim@host] /tmp% d
0 /tmp
1 /
2 ~
3 ~
[tim@host] /tmp% cd -3
~
Algumas outras opções de zsh que você pode querer analisar:
autopushd
pushdminus
pushdsilent
pushdtohome
pushd_ignore_dups