Wie kann ich die Farbe des 'ls'-Verzeichnisses unter zsh konfigurieren?

19

Ich benutze 'zsh'. In einem Verzeichnis, wenn ich 'ls --color = tty' tue. Ich sehe, dass einige Verzeichnisse 'blauen Text' mit 'grünem Hintergrund' haben, wodurch sie schwer zu lesen sind.

Können Sie mir bitte sagen, wie ich das konfigurieren soll?

Vielen Dank.

michael
quelle

Antworten:

29

Angenommen, Sie verwenden GNU ls, können Sie die Farben mit der Umgebungsvariablen LS_COLORS angeben (beachten Sie, dass dies eine GNU- lsFunktion ist und nicht spezifisch für zsh).

GNU Coreutils hat ein Programm, dircolorsmit dem Sie eine einfach zu bearbeitende Konfigurationsdatei in eine richtige (komplizierte) LS_COLORS-Variable konvertieren können. Informationen man dircolorszum Befehl und man dir_colorszur Syntax der Konfigurationsdatei finden Sie unter.

Sie können

  1. Verwenden Sie dircolors --print-database >! dircolors.default, um die Standardeinstellungen zu speichern (sie enthalten einen Erklärungstext) und sie dann zu ändern.
  2. Google für ausgefallene vorkonfigurierte Dircolors-Dateien (wie diese https://github.com/seebi/dircolors-solarized (ich habe keine Beziehung dazu)).

Sobald dies erledigt ist, müssen Sie daraus dircolorseinen richtigen LS_COLORS machen. Beachten Sie, dass die Ausgabe in den dircolorsFormaten bash und csh erfolgt, da zshSie die bashformatierte Ausgabe verwenden sollten.

PS: Verwenden Sie ls --color=autostatt ls --color=tty.

Francisco
quelle
Dies gilt nicht für benutzerdefinierte Farben. LS_COLORfunktioniert aus irgendeinem Grund nicht standardmäßig unter zsh. Siehe die zahlreichen anderen Beiträge, die sich darüber beschweren: 1) superuser.com/questions/700406/zsh-not-recognizing-ls-colors 2) github.com/robbyrussell/oh-my-zsh/issues/5349
Charlie Parker