在 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
以符合您的顏色偏好。