Cores de conclusão do ZSH e OS X

26

Considere este .zshrc mínimo:

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'

No OS X, lsusa cores se CLICOLORestiver definido como TRUE e as cores usadas estiverem no LSCOLORSvalor padrão exfxcxdxbxegedabagacad.

Fazer um lsimprimirá diretórios em azul. Mas, ao fazê-lo cd + TAB, o ZSH proporá conclusões com diretórios em vermelho e em negrito. Qual é o problema e como posso ter as mesmas cores para a conclusão do ZSH e ls?


fonte

Respostas:

28

Você precisa ler as instruções com cuidado: zshsabe como lidar LS_COLORS, que é a variante GNU / Linux da lsconfiguração de cores, mas você usa OSX / BSD LSCOLORS. Eles são muito diferentes, e parece zshque não sabe como lidar com o último.

LSCOLORS exemplo para saída vermelha:

bbbbbbbbbbbbbbbbbbbbbb

LS_COLORS exemplo para saída vermelha:

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:

Use, por exemplo, esta ferramenta ( também no Github ) para criar um bom esquema de cores ou recrie o que você usa, copie sua saída para LinuxLS_COLORS e use o seguinte para definir as cores:

# 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}
Daniel Beck
fonte