自定义 LS_COLOR 如何为 ZSH 工作?

自定义 LS_COLOR 如何为 ZSH 工作?

我想ls使用 zsh 为命令制作自定义颜色,但我发现以前的所有答案都不适合我。

我尝试了所有这些选项:

选项1)

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

#LS_COLORS='di=1:fi=96:*.m=31:*.py=32:*.txt=36:*.out=35'
#export LS_COLORS
#zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}

选项3)

#zstyle ':completiom:*' list-colors 'di=1:fi=96:*.m=31:*.py=32:*.txt=36:*.out=35'

选项 4)

#zstyle ':completion:*' list-colors 'di=34:ln=35:so=32:pi=33:ex=31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:ow=43;30'

但该ls命令的所有结果都会显示,就好像没有打开颜色选项一样。

似乎唯一可以改变颜色的方法是:

unset LSCOLORS
export CLICOLOR=1
export CLICOLOR_FORCE=1

我从另一个我找不到的答案中找到的。然而,我想要的是用我自己的定制颜色表示为:

#LS_COLORS='di=1:fi=96:*.m=31:*.py=32:*.txt=36:*.out=35'

附录

  • 为了完整性,我还看到有人建议使用,gls但我在安装它时遇到了问题,所以我放弃了。抱歉,找不到该链接了。

交叉发布:

答案1

您可能缺少zsh/complist模块。尝试zmodload zsh/complist

此外,如果你想要ls彩色输出——这与 Zsh 没有直接关系——那么你应该这样做:eval $(dircolors -b …path to the custom dircolors definitions…)。或者使用 Zplugin 并执行以下操作:

zplugin wait"0c" lucid \
 atload'zstyle ":completion:*" list-colors "${(s.:.)LS_COLORS}";' for \
    zpm-zsh/dircolors-material

相关内容