web-dev-qa-db-ja.com

ZSH完了色とOS X

この最小限の.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がTRUEに設定され、使用される色がCLICOLORにある場合、LSCOLORSは色を使用します。デフォルト値はexfxcxdxbxegedabagacadです。

lsを実行すると、ディレクトリが青色で印刷されます。しかし、cd + TAB、ZSHは赤と太字のディレクトリで補完を提案します。何が問題で、ZSH補完とlsに同じ色を使用するにはどうすればよいですか?

26
Someone

手順を注意深く読む必要があります: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でも )素敵な配色を作成するか、使用する配色を再作成し、その出力をLinuxにコピーしますLS_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}
29
Daniel Beck