動機
ホームディレクトリがドットファイルの山であふれると何となく嫌だから、1ソフト1ディレクトリくらいになって欲しい。VCSで管理もしやすくなる。Emacsは最近 .emacs.d に全部放り込めるようになったので偉い。次はzsh、お前だ!
方法
というわけでman zshして最後のほうをみると、ZDOTDIRという変数を設定すると良いらしい。といっても、これをどうやって設定するのかという問題があって、~/.zshenvあたりに書くのだとすると目的が達成されない。どうしても、システムグローバルのrcファイルに書く必要がある。まあ、他にも方法はあるだろうけど、たぶんあまりすっきりとした方法にはならないと思う。
manpageによれば、rcファイルのうちで一番最初に読まれるのは /etc/zshenv (パスはビルド時のオプションによって異なる; Ubuntuだと /etc/zsh/zshenv) らしいので、 ここに次のような記述を追加しておく:
if [[ -d "$HOME"/.zsh.d ]]
then
ZDOTDIR="$HOME"/.zsh.d
fi
あとは ~/.zsh.d を作ってそこにzsh関連のrcファイルを放り込めばよいというわけ。ひとつ注意しないといけないのは、ここに放り込むファイルも ~/.zsh.d/.zshrc みたいにドットが必要。ちょっとダサい。