Colores de terminación ZSH y OS X

26

Considere este mínimo .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'

En OS X, lsusa colores si CLICOLORestá establecido en VERDADERO y los colores usados ​​tienen LSCOLORSel valor predeterminado exfxcxdxbxegedabagacad.

Hacer una lsvoluntad imprimirá directorios en azul. Pero al hacerlo cd + TAB, ZSH propondrá terminaciones con directorios en rojo y en negrita. ¿Cuál es el problema y cómo puedo tener los mismos colores para completar ZSH y ls?


fuente

Respuestas:

28

Debe leer atentamente las instrucciones: zshsabe cómo manejarlo LS_COLORS, que es la variante de lsconfiguración de color GNU / Linux , pero utiliza OSX / BSD LSCOLORS. Son muy diferentes, y parece zshque no sabe cómo manejar esto último.

LSCOLORS ejemplo para salida roja:

bbbbbbbbbbbbbbbbbbbbbb

LS_COLORS ejemplo para salida roja:

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 ejemplo, esta herramienta ( también en Github ) para crear un esquema de color agradable, o vuelva a crear el que usa, copie su salida para LinuxLS_COLORS , luego use lo siguiente para configurar los colores:

# 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
fuente