终端不为 ls 和 cd 命令提供具有自定义颜色的 .zshrc

终端不为 ls 和 cd 命令提供具有自定义颜色的 .zshrc

ls我为和cd+自定义了目录和文件颜色TAB。这是我的配置。


我的配置

我的系统环境。

Ubuntu 10.10
zsh 4.3.10 (x86_64-unknown-linux-gnu)
oh-my-zsh // http://git://github.com/robbyrussell/oh-my-zsh.git
Terminal

我的 .zshrc 在 $HOME 中。

// .zshrc
echo "Sourcing $0."
ZSH=$HOME/.oh-my-zsh
ZSH_THEME="josh"
source $ZSH/oh-my-zsh.sh

~/.oh-my-zsh/custom/completion.zsh 中的自定义 zsh 脚本

// completion.zsh
echo "Sourcing $0."
# Same completion colors when using cd as with ls.
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*:*:*:*:*' menu yes select

~/.oh-my-zsh/custom/theme-and-appearance.zsh 中的自定义 zsh 脚本

// theme-and-appearance.zsh
echo "Sourcing $0."
export LS_COLORS='di=1;34:ln=35:so=32:pi=0;33:ex=32:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=1;34:ow=1;34:'

问题描述。

当我第一次打开终端时,会获取 3 个文件。注意,确实.zshrc出现了,但是不是及其路径或文件名。

Sourcing zsh.
Sourcing /home/john/.oh-my-zsh/custom/completion.zsh.
Sourcing /home/john/.oh-my-zsh/custom/theme-and-appearance.zsh.

使用该ls命令,目录列表看起来与预期一致。不过,当我使用cd命令和TAB自动完成目录颜色时,目录颜色与ls.

然后我再次获取配置。请注意,这次.zshrc确实显示了其完整路径和文件名。我不确定这是否会导致此处解释的问题。

$ . ~/.zshrc 
Sourcing /home/john/.zshrc.
Sourcing /home/john/.oh-my-zsh/custom/completion.zsh.
Sourcing /home/john/.oh-my-zsh/custom/theme-and-appearance.zsh.

现在lscd+TAB使用相同的颜色。


问题

我如何更改我的配置,以便在打开终端应用程序时立即加载自定义内容?

答案1

问题在于文件的来源顺序。LS_COLORS必须在运行之前定义zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

您可以通过将文件重命名为00theme-and-appearance.zsh和 之类的名称来解决此问题01completion.zsh

相关内容