ZSH-Abschlussfarben und OS X

26

Betrachten Sie diese minimale .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'

lsVerwendet unter OS X Farben, wenn CLICOLORTRUE festgelegt ist und die verwendeten Farben LSCOLORSden Standardwert haben exfxcxdxbxegedabagacad.

Wenn Sie einen lsBefehl ausführen, werden die Verzeichnisse in Blau gedruckt. Dabei cd + TABschlägt ZSH Vervollständigungen mit rot und fett markierten Verzeichnissen vor. Was ist das Problem und wie kann ich die gleichen Farben für die ZSH-Vervollständigung haben und ls?


quelle

Antworten:

28

Sie müssen die Anweisungen sorgfältig lesen: Sie zshwissen, wie man damit umgeht LS_COLORS, was die GNU / Linux-Variante der lsFarbkonfiguration ist, aber Sie verwenden OSX / BSDs LSCOLORS. Sie sind sehr unterschiedlich, und es scheint, dass zshsie nicht wissen, wie sie mit letzterem umgehen sollen.

LSCOLORS Beispiel für rote Ausgabe:

bbbbbbbbbbbbbbbbbbbbbb

LS_COLORS Beispiel für rote Ausgabe:

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:

Verwenden Sie z. B. dieses Tool ( auch auf Github ), um ein ansprechendes Farbschema zu erstellen, oder erstellen Sie das von Ihnen verwendete Farbschema neu, kopieren Sie die Ausgabe für LinuxLS_COLORS und stellen Sie die Farben folgendermaßen ein:

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