Você tem uma versão antiga do Zsh ou sua configuração está quebrando. A conclusão de cd
do Zsh tem esse recurso e funciona. Você pode verificar isso executando zsh sem usar nenhuma das suas configurações:
zsh -f # all settings at their default values
autoload compinit && compinit
mkdir -p tmp/a/b
mkdir -p tmp/c/b
mkdir -p tmp/b
cd tmp/a/b
cd a [TAB]
Estou executando o Zsh 5.1 e ele é concluído corretamente em c
. Se eu criar uma segunda conclusão possível, por exemplo mkdir -p d/b
, isso me dá c
e d
.