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

相關內容