我刚刚接触 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 中的输出进行着色。因此,无需使用zstyle
或CLICOLOR
/ LS_COLORS
。
只需根据您的需要调整以下别名并将其附加到.zshrc
文件中。
alias ls="ls --color=auto"
答案4
如果您使用的是 MacOS,则 BSD 版本的 ls 不使用 LS_COLORS,但您可以改用 GNU 版本的 ls:
brew install coreutils
alias ls="gls --color"