Wenn ich in ZSH versuche, cd
in ein Verzeichnis zu wechseln und die Tabulatortaste verwende, um die Liste der Verzeichnisse abzurufen, sind einige davon sehr hellgrün hervorgehoben. Mir ist aufgefallen, dass die Hintergrundhervorhebung dieselbe ist wie die der Verzeichnisse in ls
. Ich habe es geändert, LS_COLOR
in der Hoffnung, dass das das Problem behebt, aber die Hervorhebung der automatischen Vervollständigung bleibt dieselbe. Ich habe auch die Zstyle-Vervollständigungsschlüssel/-konfigurationen überprüft, aber dort keine für Verzeichnisse gefunden. Kann mir jemand helfen, das zu beheben?
Danke
EDIT: Hier ist ein Link zu meiner .zshrc
Datei:https://dpaste.org/V8oE
EDIT2: Ich konnte das Problem lösen, indem ich das Design auf meinem Terminal (Konsole) geändert habe. Ich glaube nicht, dass es das Problem von ZSH war.
Antwort1
Die farbige Vervollständigung von zsh wird mit dem list-colors
Zstyle konfiguriert ( info zsh list-colors
Details finden Sie unter).
Ihre ~/.zshrc
oder jede andere von ihr aufgerufene Anpassungsdatei kann etwa Folgendes enthalten:
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
Damit dies auf dem Inhalt der Variablen basiert $LS_COLORS
(damit Sie in Zsh-Vervollständigungen dieselben Farben erhalten wie in der GNU- ls --color
Ausgabe).
$LS_COLORS
ist die von GNU verwendete Variable ls
und wird im Allgemeinen durch den Aufruf von etwas wie: gesetzt.
eval "$(dircolors --sh ~/.dircolors)"
(vielleicht früher in Ihrem ~/.zshrc
oder in Ihrem ~/.zprofile
).
In
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
jedoch $LC_COLORS
wird die erweitert und geteilt auf:
zu der Zeit ~/.zshrc
wird interpretiert.
Wenn Sie ändern $LS_COLORS
, wird dieser zstyle
Befehl nicht automatisch erneut ausgeführt. Wenn Sie ~/.zshrc
nach der Änderung Ihre erneut als Quelle verwenden $LS_COLORS
, ist es möglich, dass der dircolors
Befehl, der $LS_COLORS
auf Grundlage der in gespeicherten Konfiguration neu generiert wird ~/.dircolors
, ebenfalls erneut ausgeführt wird und Ihre Änderungen überschreibt.
Sie müssen also Folgendes tun:
- Finden Sie heraus, wo der
list-colors
Zstyle in Ihren Startdateien definiert ist - Wenn es auf basiert
$LS_COLORS
, finden Sie heraus, wie das$LS_COLORS
definiert wird, und beheben Sie das Problem. Und wenn nicht, passen Sie diesen Aufruf an,zstyle
damit er Ihren Farbvorlieben entspricht.