vimから外部コマンドを実行すると$PATHがなんかへん

結論

PATHを記述するファイルを変更する zshrc -> zshenv

現象

zshからコマンドを実行した場合の$PATH

% echo $PATH
/usr/local/bin:/Users/okamura/perl5/perlbrew/bin:/Users/okamura/perl5/perlbrew/perls/perl-5.12.2/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

viからコマンドを実行した場合の$PATH

:!echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/okamura/perl5/perlbrew/bin:/Users/okamura/perl5/perlbrew/perls/perl-5.12.2/bin

理由(たぶん)

こういうことだろうか

  • zshrcに記述された内容はシェルでは有効、viを起動した場合、この設定は有効にならない
  • zshenvに記述された内容はシェルでも有効、viを起動した場合も有効

うーん。今までzshrcに記述していたけど、今度からzshenvに書くようにしよう。