Ответы:
Предполагая, что вы используете GNU ls, вы можете указать цвета с помощью переменной окружения LS_COLORS (обратите внимание, что это lsособенность GNU, а не специфичная для zsh).
В GNU Coreutils есть программа, призванная dircolorsпомочь вам преобразовать легко редактируемый файл конфигурации в правильную (сложную) переменную LS_COLORS. Смотрите man dircolorsкоманду и man dir_colorsсинтаксис файла конфигурации.
Вы можете
dircolors --print-database >! dircolors.defaultдля сохранения значений по умолчанию (содержит текст пояснения), а затем измените их.После этого вам нужно dircolorsпревратить это в правильный LS_COLORS. Обратите внимание, что для dircolorsвывода в форматах bash и csh zshвам следует использовать bashформатированный формат.
PS: использовать ls --color=autoвместо ls --color=tty.
LS_COLORпочему-то не работает по умолчанию на zsh. Смотрите множество других сообщений, жалующихся на это: 1) superuser.com/questions/700406/zsh-not-recognizing-ls-colors 2) github.com/robbyrussell/oh-my-zsh/issues/5349