vimの起動が最近どうも、もっさりとしていて気になっていたのだけど、てっきりvimのプラグインか何かが悪さしていたのかなと思っていたが、どうやら原因が~/.zshenvが重いことであった
~/.zshenvを読みこむときにかかる時間を測定するには、以下のようにすればよい。
$ time ( source ~/.zshenv )
( source ~/.zshenv; ) 0.63s user 0.41s system 96% cpu 1.080 total
timeとsourceはどちらもシェル関数でコマンドではないので、サブシェルにする必要がある。
あとは実行しつつ、一部をコメントアウトしたりすればよい。
なお調査したところ、私の設定の場合は、perlbrewとrbenvの初期化が8割ぐらいの時間を占めていて、perlbrewは良いアイディアはなかったが、rbenvは
eval (rbenv init -)
をやめ、rbenv init -の結果出てくるシェルスクリプトをファイルから読むようにし、
# rbenv rehash 2>/dev/null
をコメントアウトしたところ、
( source ~/.zshenv; ) 0.29s user 0.12s system 96% cpu 0.429 total
ぐらいにはなった。perlbrewを外せば、totalが0.2 secぐらいになるが、vimからperlを実行できないとさすがに困るので、とりあえずこれで我慢する。
今のところ特に不都合が出ていないようだけど、頻繁にrubyのバージョンを切り替えたりするときは問題があるかもしれない。(たぶん切り替えたあとにrehashすればよいはず)