ZSH Завершение цвета и OS X

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установлено значение ИСТИНА, а используемые цвета имеют LSCOLORSзначение по умолчанию exfxcxdxbxegedabagacad.

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


источник

Ответы:

28

Вам нужно внимательно прочитать инструкции: zshзнает, как обращаться LS_COLORS, это вариант lsцветовой конфигурации GNU / Linux , но вы используете OSX / BSD LSCOLORS. Они очень разные, и, похоже 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 ), чтобы создать красивую цветовую схему, или воссоздайте ту, которую вы используете, скопируйте ее вывод для LinuxLS_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}
Даниэль Бек
источник