ZSH完成颜色和OS X


26

考虑这个最小的.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如果if CLICOLOR设置为TRUE ,则使用颜色,并且所使用的颜色的LSCOLORS默认值为 exfxcxdxbxegedabagacad

这样做ls会以蓝色打印目录。但是cd + TAB,ZSH会在这样做时建议使用红色和粗体显示目录。有什么问题,如何为ZSH完成和使用相同的颜色ls

macos  shell  colors  zsh 

Answers:


28

您需要仔细阅读说明:zsh知道如何使用LS_COLORS,这是GNU / Linux ls色彩配置的变体,但是您使用的是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}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.