Isso tem pouco a ver com zsh . zsh suporta a conclusão colorida como o GNU ls (com coisas como azul para diretórios, verde para executáveis ...), e suporta as mesmas diretivas de configuração GNU ls faz.
A configuração de cores GNU ls é feita através da variável de ambiente LS_COLORS . Quando essa variável contém ln=01;36 , isso significa que links simbólicos devem ser renderizados em negrito ciano ( 36 sendo o código de cor ANSI para primeiro plano ciano e 01 sendo negrito).
Em zsh , você pode fazer o mesmo com:
zstyle ':completion:*' list-colors 'ln=01;36'
E, na verdade, você geralmente configura a conclusão colorida zsh com:
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
Então, zsh cores são completadas da mesma forma que o GNU ls faz.
Para facilitar a gravação do conteúdo da variável LS_COLORS , o GNU ls vem com o comando dircolors . Esse comando recebe como entrada um arquivo de configuração com um conteúdo mais detalhado (já que os arquivos de configuração não possuem restrições de espaço como as variáveis de ambiente) e gera o conteúdo correspondente da variável LS_COLORS adequada ao seu terminal.
Acima temos:
LINK 01;38;5;37
01 ainda está em negrito, mas 38;5;37 é a especificação para modos de cor estendidos para terminais como xterm que suportam 88 ou 256 cores.
Essa é a cor de primeiro plano 37, que é um pouco de ciano ( rgb:00/af/af ) ligeiramente mais escuro que a cor padrão para a cor ANSI 6 ( cyan3 pelo menos com meu xterm , que aqui é rgb:00/cd/cd ). / p>
~$ tput setaf 37 | sed l
3[38;5;37m$
Quando passado por dircolors , isso se torna ln=38;5;37 .
Há também MULTIHARDLINK 00 , que diz que os arquivos com mais de um link físico devem ser renderizados com a cor padrão. Isso seria traduzido para mh=00 em $LS_COLORS .
No entanto, isso foi introduzido em uma versão relativamente recente de ls / dircolors . Ela costumava ser HARDLINK / hl , mas foi renomeada para MULTIHARDLINK / mh no coreutils 7.5 em 2009, já que essa foi uma escolha mais correta de texto.
Parece que você tem uma versão mais antiga de dircolors . Note que zsh não suporta hl nem mh (apesar de não se queixar, simplesmente ignore-o), e como é apenas configurado para as cores padrão, você também pode remover essa linha.
RESET / rs foi adicionado no coreutils 6.11 e não é suportado por zsh .
CAPABILITY / ca foi adicionado no coreutils 7.0 e não é suportado por zsh .
Provavelmente, há mais daqueles que não são suportados pelo zsh (veja info zsh 'The zsh/complist Module' para detalhes), mas novamente, zsh apenas ignora o que ele não suporta.
Os erros que você recebe são de dircolors . Significa apenas que quem escreveu esse arquivo dircolors tinha uma versão mais nova do coreutils (o conjunto de utilitários GNU incluindo ls e dircolors ) do que você. Basta remover as linhas que não são suportadas nesse arquivo.