zinitでeval dircolorsを使って色定義をする時はシングルクオートを使う
生産性向上の為自分の.zsh.dをsubmoduleでlibを管理する方法からzinitを使うように書き換えていました.
これはzinitで読み込むだけだと設定出来なくてdircolorsを実行してその結果をevalで読み込む必要があります.
zinitにはatloadがあるのでそこに単に設定したらエラーが出てきました.
カレントディレクトリが.zsh.dに設定されてしまったようです.
lsとかだとちゃんとzinitが作るディレクトリになるのにどうして…?
と思ったらダブルクオート""を使ってatloadに値を渡していたのが悪かったようです.
evalはダブルクオートだとその時点で展開を行ってしまうようですね.
以下のようにシングルクオートで設定したらうまくいきました.
zinit ice atload'eval `dircolors $PWD/dircolors.256dark`'
zinit light seebi/dircolors-solarized
いやー正直シェルスクリプトは何時までたってもよく分かりません.
hatena-bookmark