• 作成:

zinitでeval dircolorsを使って色定義をする時はシングルクオートを使う

生産性向上の為自分の.zsh.dをsubmoduleでlibを管理する方法からzinitを使うように書き換えていました.

seebi/dircolors-solarized: This is a repository of themes for GNU ls (configured via GNU dircolors) that support Ethan Schoonover’s Solarized color scheme.が設定できなくて困っていました.

これはzinitで読み込むだけだと設定出来なくてdircolorsを実行してその結果をevalで読み込む必要があります.

zinitにはatloadがあるのでそこに単に設定したらエラーが出てきました.カレントディレクトリが.zsh.dに設定されてしまったようです.lsとかだとちゃんとzinitが作るディレクトリになるのにどうして…?

と思ったらダブルクオート""を使ってatloadに値を渡していたのが悪かったようです.evalはダブルクオートだとその時点で展開を行ってしまうようですね.

以下のようにシングルクオートで設定したらうまくいきました.

zinit ice atload'eval `dircolors $PWD/dircolors.256dark`'
zinit light seebi/dircolors-solarized

いやー正直シェルスクリプトは何時までたってもよく分かりません.