zshで

cd -[TAB]

とすると、setopt auto_pushdしていた場合は過去にいたディレクトリが

~% cd -
0 -- /home/**/work/dotfiles/.vim  (一番昔)
1 -- /home/**/work/dotfiles
2 -- /home/**/work                (直近)

のように表示されます。しかし、このままタブを押し続けていくと、最も昔にいたディレクトリから順次選択れていくのはやや直感的ではありません。できれば直近にいたディレクトリを優先してリストアップしてほしい。

zstyleのヘルプを見ても’completion:complete:cd:*’でリストを逆順にする方法が分からず、途方に暮れていたところ…

Zsh Workshop: The Directory Stackを見ていて

cd +[TAB]

が目的の動作だったと閃きました。

~% cd +
1 -- /home/**/work
2 -- /home/**/work/dotfiles
3 -- /home/**/work/dotfiles/.vim

ただUS配列では+はシフトが必要で若干面倒なので、setopt pushd_minusとして+と-の意味を入れ替えると良さそうです。

しかしリスト/メニューを逆順にするzstyleが見つからないのは結構問題です。file-sortに関しては’reverse’というオプションがあるらしいですが、それ以外は候補を自分で生成するしかないのでしょうか。