O comando dircolors é específico do GNU coreutils, então você vai encontrá-lo no Linux não embutido e no Cygwin, mas não em outros sistemas unix como o OSX. As configurações geradas no seu .zshrc não são portáveis para o OSX.
Como você está usando as cores padrão, pode passar uma string vazia para o
list-colors para obter cores nas conclusões dos arquivos.
Para cores com o comando ls real , defina a variável de ambiente CLICOLOR no OSX e também defina LSCOLORS (consulte o manual para o formato) se você quiser alterar as cores.
if whence dircolors >/dev/null; then
eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
alias ls='ls --color'
else
export CLICOLOR=1
zstyle ':completion:*:default' list-colors ''
fi
Se você quiser definir cores não padrão ( dircolors com um argumento de arquivo), minha recomendação seria codificar a saída de dircolors -b ~/.dircolors em seu .zshrc e usar essas configurações para zsh e GNU ls.
LS_COLORS=…
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
if whence dircolors >/dev/null; then
export LS_COLORS
alias ls='ls --color'
else
export CLICOLOR=1
LSCOLORS=…
fi