すごく環境依存なコードを.zshrc
に書かなければならないことってありますよね。
そういう時は、.zshrc
に直接書くのではなく、例えば、.zshrc.local
というファイルを作り、
.zshrc.local
# 今使っているマシンでのみ有効にしたい設定を書く
## 例1:heroku toolbeltを有効にするためのパス
export PATH="/usr/local/heroku/bin:$PATH"
## 例2:Treasure Dataのtdコマンドを使うためのAPI_KEYの設定
export TREASURE_DATA_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
.zshrc
ファイルの最後で、以下のように読み込むようにすると良いです。
.zshrc
# どのマシンでも共通に使いたい設定を書く
# ...
# ...
[ -f ~/.zshrc.local ] && source ~/.zshrc.local
こうすると、.zshrc.local
というファイルがない場合は読み込みが起こらないので、.zshrc
をそのまま他人にあげたり、他のPCに持っていったりしても不具合が起こらない状態を維持できます。
ファイルの最後で読み込むのは、.zshrc.local
で.zshrc
の設定を上書きすることを出来るようにするためです。
[ -f hoge ]
の意味の詳細は、man test
と打って調べてください。(http://www.manpagez.com/man/1/test/)
応用
自分は、.zshrc.local
の他に.zshrc.mac
も作っていて
.zshrc.mac
# open new tab in same working directory on osx lion.
precmd () {print -Pn "\e]2; %~/ \a"}
preexec () {print -Pn "\e]2; %~/ \a"}
alias emacs='/Applications/Emacs.app/Contents/MacOS/Emacs -nw'
というようになっています。
他にも、どのPCでも使うけれど、個人用の設定があるという場合は、.zsh.personal
を作って、その中に入れておくと良いのではないでしょうか。