Zsh 无法识别 ls 颜色

Zsh 无法识别 ls 颜色

我刚刚接触 Zsh,到目前为止,我真的很喜欢它的可定制性。

我使用以下行在 .zshrc 中设置颜色:

zstyle ':completion:*' list-colors ''

这给了我这些颜色:

但是当我使用ls(我已将其别名为ls -G)时,我得到以下颜色:

有没有办法让 Zshlist-colors与之相同ls

编辑:

我也尝试过将颜色设置为 ls 默认值,但man ls没有成功(颜色仍然与第一张图像相同):

zstyle ':completion:*' list-colors 'exfxcxdxbxegedabagacad'      

答案1

恰当的使用 GNU ls 配置颜色的另一种方法是使用LS_COLORS(参见https://superuser.com/a/530467/175441)。现在假设您已经LS_COLORS设置,您现在应该使用

# Zsh to use the same colors as ls
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}  

list-colors顺便说一句,上面的方法有效。在 Zsh 手册中搜索(即man zshall)。如果您无法让其工作,请尝试运行此命令(LS_COLORS为方便起见,简称为...):

LS_COLORS='no=00;37:fi=00:di=00;33:ln=04;36:pi=40;33:so=01;35:bd=40;33;01:'
export LS_COLORS
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}

答案2

就我而言,我还必须

export CLICOLOR=1

让 ls 为其输出着色,如中所述man ls

答案3

默认ls参数--color=auto也会对 zsh 中的输出进行着色。因此,无需使用zstyleCLICOLOR/ LS_COLORS

只需根据您的需要调整以下别名并将其附加到.zshrc文件中。

alias ls="ls --color=auto"

答案4

如果您使用的是 MacOS,则 BSD 版本的 ls 不使用 LS_COLORS,但您可以改用 GNU 版本的 ls:

brew install coreutils
alias ls="gls --color"

从:https://github.com/sharkdp/vivid#on-macos

相关内容