26

Считайте это минимальным .zshrc:

export CLICOLOR=1;
export LSCOLORS=exfxcxdxbxegedabagacad; # It is the default value on OSX, so this line can be omitted

autoload -Uz compinit
compinit
zstyle ':completion:*' list-colors 'exfxcxdxbxegedabagacad'

В OS X ls использует цвета, если для CLICOLOR установлено значение TRUE, а используемые цвета - в LSCOLORS значением по умолчанию является exfxcxdxbxegedabagacad .

Выполнение команды ls приведет к печати каталогов синим цветом. Но при выполнении cd + TAB ZSH предложит дополнения с каталогами, выделенными красным и жирным шрифтом. В чем проблема и как я могу иметь одинаковые цвета для завершения ZSH и ls?

1 ответ1

28

Вам необходимо внимательно прочитать инструкции: zsh знает, как обращаться с LS_COLORS , который является GNU/Linux-вариантом конфигурации цвета ls , но вы используете LSCOLORS OSX /BSD. Они очень разные, и кажется, что zsh не знает, как справиться с последним.

LSCOLORS для красного вывода:

bbbbbbbbbbbbbbbbbbbbbb

Пример LS_COLORS для красного вывода:

di=31;41:ln=31;41:so=31;41:pi=31;41:ex=31;41:bd=31;41:cd=31;41:su=31;41:sg=31;41:tw=31;41:ow=31;41:

Используйте, например, этот инструмент (также на Github), чтобы создать красивую цветовую схему или воссоздать ту, которую вы используете, скопируйте ее вывод для Linux LS_COLORS, а затем используйте следующее, чтобы установить цвета:

# between quotation marks is the tool output for LS_COLORS
export LS_COLORS="di=31;41:ln=31;41:so=31;41:pi=31;41:ex=31;41:bd=31;41:cd=31;41:su=31;41:sg=31;41:tw=31;41:ow=31;41:"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

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