显示ls时去除目录背景色

显示ls时去除目录背景色

我遇到这个问题,某些目录是彩色的在此输入图像描述

我想保留颜色但删除背景(此处为绿色,但有时可以是其他颜色)我想删除背景颜色。

我在 MacOS Monterey 12.1 上使用 zsh 终端。

我已经找到了关于此的其他帖子,但它们都不适合我

答案1

这是由ls, not完成的着色zsh(尽管zsh可以像 GNUls在其完成列表中那样配置为文件着色)。

ls这里,绿色背景和蓝色前景是你在 GNU 的默认配置中获得的颜色--color(不是 FreeBSD ls,这应该是/bin/shmacos 的),用于没有粘性位并且可通过以下方式写入的目录其他的(比所有者和组所有者)。

如果某个目录具有这些权限,通常意味着存在问题。实在是太宽松了。因此,如果您看到令人讨厌的颜色,这是一件好事,因为这会阻碍您修复它。

dircolors -p显示默认配置:

$ dircolors -p | grep -w -e 34 -e 42
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
DIR 01;34 # directory
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky

(在 ANSI 着色转义序列中,34 是前景蓝色的代码,42 是背景绿色的代码)。

STICKY_OTHER_WRITABLE(绿底黑字)将匹配世界可写目录,例如/tmp.但这些并不像 OTHER_WRITABLE 那么糟糕,因为至少用户(目录所有者除外)无法删除/重命名他们不拥有的文件。

要更改这些默认值,您可以将该输出重定向dircolors -p到某个文件:

dircolors -p > ~/.config/dircolors

根据您的喜好进行编辑。例如,将 OTHER_WRITABLE 更改为更令人震惊和难以忍受的内容:

OTHER_WRITABLE 5;48;5;210;38;5;47 # some shade of green on some shade of pink
                                  # background and blinking to urge users
                                  # to fix the permissions

(这里使用通常由支持 256 调色板的终端识别的转义序列;现在许多终端忽略了最初的 5 个闪烁,因为它太烦人了)。

您将添加到您的~/.zshrc

eval "$(dircolors -b ~/.config/dircolors)"

对于要加载到$LS_COLORS环境变量中的这些设置,它OTHER_WRITABLE 5;48;5;210;38;5;47会显示为ow=48;5;210;38;5;47.

为了zsh在其完成中显示相同的颜色,您至少需要(在上面的行之后~/.zshrc):

autoload -Uz compinit
compinit
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}

尽管您可能希望通过 进行适当的调整compinstall,但浏览菜单将引导您:

3.  Styles for changing the way completions are displayed and inserted.

➡️

3.  Configure coloured/highlighted completion lists, selection of items
    and scrolling.

➡️

1.   Use coloured lists for listing completions.

➡️

1.  Using the default colours.
2.  Using the colours already set up for GNU ls via the $LS_COLORS
    environment variable.  Note this must be set before the completion
    configuration code is executed.
3.  Turn colouring off.

选择 3 ➡️ 3 ➡️ 1 ➡️ 3 会将zstyle上面的行添加到您的~/.zshrc.

答案2

有同样的问题。

首先ls使用 来检查你的真实情况which ls,在我的例子中,它的别名是 be gls --color=tty,这不是我自己设置的,而是 zsh 或 ohmyzsh

只需unalias ls删除背景颜色

如果你想保留文本前景色,只需别名lsls -G其他

相关内容