ZSH 路径自动补全突出显示

ZSH 路径自动补全突出显示

在 ZSH 中,当我尝试cd进入目录并使用 Tab 来获取目录列表时,其中一些目录具有非常亮的绿色突出显示。我注意到背景突出显示与ls.我改变了LS_COLOR希望能解决这个问题,但自动完成突出显示保持不变。我还检查了 zstyle 完成键/配置,但没有找到任何目录。有人可以帮我解决这个问题吗?

1]

谢谢

编辑:这是我的文件的链接.zshrchttps://dpaste.org/V8oE

EDIT2:我能够通过更改终端(Konsole)上的主题来解决这个问题。我不认为这是ZSH的问题。

答案1

zsh 的彩色补全是通过 zstyle 配置的list-colorsinfo 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

所以在这里,你需要做的是:

  1. 找出list-colorszstyle 在启动文件中的定义位置
  2. 如果它基于$LS_COLORS,请找出它$LS_COLORS是如何定义的并修复它。如果没有,请调整该调用zstyle以匹配您的颜色偏好。

相关内容