6

Я только что познакомился с Zsh, и до сих пор мне очень нравится настраиваемость.

Я использую следующую строку для настройки цветов в .zshrc:

zstyle ':completion:*' list-colors ''

Это дает мне эти цвета:

Однако, когда я использую ls (я связал его с ls -G), я получаю следующие цвета:

Есть ли способ сделать list-colors Zsh такими же, как у ls?

РЕДАКТИРОВАТЬ:

Я также попытался установить цвета по умолчанию для ls от man ls без успеха (цвета по-прежнему выглядят так же, как на первом изображении):

zstyle ':completion:*' list-colors 'exfxcxdxbxegedabagacad'      

3 ответа3

3

Оказывается, zsh не нравится, как ls хранит свои цвета. Вы должны преобразовать цвета во что-то, что понимает zsh .

zstyle ':completion:*' list-colors 'di=34:ln=35:so=32:pi=33:ex=31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:ow=43;30'
3

Правильный способ настройки цветов с помощью GNU ls - использование LS_COLORS (см. Https://superuser.com/a/530467/175441). Теперь, предполагая, что у вас установлен LS_COLORS , вы должны теперь использовать

# Zsh to use the same colors as ls
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}  

Кстати, вышесказанное работает. Найдите list-colors в руководстве по Zsh (т.е. man zshall). Если вы не можете заставить это работать, попробуйте запустить это (кратко LS_COLORS для удобства ...):

LS_COLORS='no=00;37:fi=00:di=00;33:ln=04;36:pi=40;33:so=01;35:bd=40;33;01:'
export LS_COLORS
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
2

В моем случае мне также пришлось

export CLICOLOR=1

чтобы ls раскрасил свой вывод, как описано в man ls .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .