Terminal

終端不使用 ls 和 cd 命令的自定義顏色來獲取 .zshrc

  • February 5, 2012

ls我為and 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

我在 $HOME 中的 .zshrc。

// .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使用相同的顏色。


我如何必須更改我的配置,以便在打開終端應用程序後立即載入自定義?

問題在於文件的來源順序。LS_COLORS必須在執行之前定義zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

您可以通過將文件重命名為00theme-and-appearance.zsh01completion.zsh.

引用自:https://unix.stackexchange.com/questions/30946