Couleurs d'achèvement ZSH et OS X

26

Considérez ce .zshrc minimal:

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'

Sous OS X, lsutilise des couleurs si CLICOLORest défini sur VRAI et les couleurs utilisées sont dans LSCOLORSlesquelles la valeur par défaut est exfxcxdxbxegedabagacad.

Faire un lsva imprimer les répertoires en bleu. Mais ce faisant cd + TAB, ZSH proposera des complétions avec des répertoires en rouge et en gras. Quel est le problème et comment puis-je avoir les mêmes couleurs pour la finition ZSH et ls?


la source

Réponses:

28

Vous devez lire attentivement les instructions: zshsait comment gérer LS_COLORS, qui est la variante GNU / Linux de lsla configuration des couleurs, mais vous utilisez OSX / BSD LSCOLORS. Ils sont très différents et il zshne semble pas savoir comment gérer ces derniers.

LSCOLORS exemple pour sortie rouge:

bbbbbbbbbbbbbbbbbbbbbb

LS_COLORS exemple pour sortie rouge:

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:

Utilisez par exemple cet outil ( également sur Github ) pour créer un joli jeu de couleurs, ou recréez celui que vous utilisez, copiez sa sortie pour LinuxLS_COLORS , puis utilisez ce qui suit pour définir les couleurs:

# 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
la source