Jak mogę skonfigurować kolor katalogu 'ls' w Zsh

20

Używam „zsh”. W jakimś katalogu, gdy robię 'ls --color = tty'. Widzę, że niektóre katalogi mają „niebieski tekst” z „zielonym tłem”, co czyni je trudnymi do odczytania.

Czy możesz mi powiedzieć, jak to skonfigurować?

Dziękuję Ci.

Michael
źródło

Odpowiedzi:

29

Zakładając, że używasz GNU ls, możesz określić kolory za pomocą zmiennej środowiskowej LS_COLORS (zauważ, że jest to lsfunkcja GNU i nie jest specyficzna dla zsh).

GNU Coreutils ma program wywoływany, dircolorsaby pomóc Ci przekonwertować łatwy do edycji plik konfiguracyjny na odpowiednią (skomplikowaną) zmienną LS_COLORS. Zobacz man dircolorspolecenie i man dir_colorsskładnię pliku konfiguracyjnego.

Możesz

  1. użyj, dircolors --print-database >! dircolors.defaultaby zapisać wartości domyślne (zawiera tekst objaśnienia), a następnie zmodyfikuj go.
  2. Google dla fantazyjnych wstępnie skonfigurowanych plików dircolors (takich jak ten https://github.com/seebi/dircolors-solarized (nie mam z tym żadnego związku)).

Po zakończeniu musisz dircolorszmienić to w odpowiednią LS_COLORS. Zauważ, że dane dircolorswyjściowe są w formacie bash i csh, ponieważ zshpowinieneś użyć bashwyjścia sformatowanego.

PS: Użyj ls --color=autozamiast ls --color=tty.

Francisco
źródło
nie dotyczy to niestandardowych kolorów. LS_COLORz jakiegoś powodu nie działa domyślnie na zsh. Zobacz wiele innych postów narzekających na to: 1) superuser.com/questions/700406/zsh-not-recognizing-ls-colors 2) github.com/robbyrussell/oh-my-zsh/issues/5349
Charlie Parker