fish 2.7.0 で cdh というコマンドが追加されました。
これはディレクトリの履歴から cd するディレクトリを選択できるものです。fish だとこれまで pushd / popd とか z とかを使ってディレクトリの移動はやりくりするしかなかったので、このコマンドの追加はかなりありがたいと感じています。zsh の cd - や cdr をご存知の方であれば、そういったユーザーフレンドリーなディレクトリ移動をサポートするものと思ってもらえればよいです。
まあ一回使ってみれば使い方はすぐわかるのでわざわざ紹介するまでもないのですが、どうせお前らリリースノートとか読んでないだろうからな!
使いかた
$ cdh
とだけ入力すると
$ cdh
d 4) ~/ghq/github.com/xxxxx
c 3) ~
b 2) ~/Desktop
a 1) /Library
とこんな感じで最近訪問したディレクトリがリストアップされますので、文字 (a...) か数字 (1...) で移動したいディレクトリを選択します。
ちなみに、cdh にディレクトリを引数として渡すと cd と同じ働きになるようです。つまりそのディレクトリに単純に移動します。
また、試していないのですが、man cdh によると、ディレクトリ履歴は $dirprev と $dirnext という変数に格納されるため、それらの変数を universal variable にするとセッションを跨いで履歴を共有することができるようです。