.zshrc を修正

alias gd='dirs -v; echo -n "select number: "; read newdir; cd +"$newdir"' は不要

下記で、同等の効果が得られるので不要。

cd -[TAB]

参考URI
【コラム】漢のzsh (5) 「あーっ!」というそのときのために - 備えあれば憂いなしの設定集 | エンタープライズ | マイコミジャーナル

.zshrc ファイルを分割

for 文を使うように修正した。

for file in env bindkey prompt complete history screen alias; do
  [ -f ~/.zshrc.$file ]; source ~/.zshrc.$file
done

.zshrc.env、.zshrc.bindkey 〜 .zshrc.alias と source する。

困ってる事

OS 毎に処理を分岐したい。
perl 使えば、下記みたい書ける。

echo `/usr/bin/perl -e 'print $^O;'`

zsh だけで実現する方法ないかなー?

uname コマンドで可能でした
例えば、OSX なら下記のようにできます。

if [ `uname` = 'Darwin' ]; then
  # do something ...
fi