在 ZSH 中,当我尝试cd
进入目录并使用 Tab 来获取目录列表时,其中一些目录具有非常亮的绿色突出显示。我注意到背景突出显示与ls
.我改变了LS_COLOR
希望能解决这个问题,但自动完成突出显示保持不变。我还检查了 zstyle 完成键/配置,但没有找到任何目录。有人可以帮我解决这个问题吗?
谢谢
编辑:这是我的文件的链接.zshrc
:https://dpaste.org/V8oE
EDIT2:我能够通过更改终端(Konsole)上的主题来解决这个问题。我不认为这是ZSH的问题。
答案1
zsh 的彩色补全是通过 zstyle 配置的list-colors
(info zsh list-colors
详细信息请参见 )。
您的~/.zshrc
或它调用的任何其他自定义文件可能具有以下内容:
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
其基于$LS_COLORS
变量的内容(因此您在 zsh 补全中获得与 GNU 输出中相同的颜色ls --color
)。
$LS_COLORS
是 GNU 使用的变量ls
,通常通过调用以下内容来设置:
eval "$(dircolors --sh ~/.dircolors)"
(也许在你的早期~/.zshrc
,或者在你的~/.zprofile
)。
在
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
然而,$LC_COLORS
被扩展和分割:
当时~/.zshrc
被解释为。
如果您更改$LS_COLORS
,该zstyle
命令不会自动再次运行,并且如果您~/.zshrc
在修改 后再次获取命令,则根据存储的配置重新生成的命令$LS_COLORS
可能也会再次运行,从而覆盖您的修改。dircolors
$LS_COLORS
~/.dircolors
所以在这里,你需要做的是:
- 找出
list-colors
zstyle 在启动文件中的定义位置 - 如果它基于
$LS_COLORS
,请找出它$LS_COLORS
是如何定义的并修复它。如果没有,请调整该调用zstyle
以匹配您的颜色偏好。