Terminal nie wyświetla kolorów dla list katalogów

9

Nie wiem, dlaczego moja sesja bash nie pokazuje kolorów. Próbowałem Terminalu, a także iTerm.

Próbowałem:

  1. ls -G
  2. Ustawienie export CLICOLOR=1iexport LSCOLORS=GxFxCxDxBxegedabagaced
  3. Używanie różnych tematów, takich jak solaryzacja i coś innego

Wersje mojego oprogramowania to:

  1. bash: GNU bash, wersja 3.2.51 (1) - wydanie (x86_64-apple-darwin13)
  2. osx: 10.9.2

Mam zainstalowany Homebrew

Nie wiem, jakie inne informacje mogą być pomocne. Spędzam dużo czasu na powłoce, ten problem staje się bardzo denerwujący :)

edycja: w preferencjach terminalu mam „Zadeklaruj terminal jako: xterm-256color” i „Wyświetl kolory ANSI” wraz z „Użyj jasnych kolorów dla pogrubionego tekstu”

Shahbaz
źródło
Spróbuj uruchomić printf '\e[32mtest\n', jeśli to zadziała, to problem ls.
0942v8653
Mam też ten problem. Aby rozszerzyć to, co próbowałeś, problem nadal występuje w poleceniu gls coreutils. Powyższy komentarz skutecznie zmienia kolor pytania. Mój problem wydaje się dotyczyć motywu SolarizedDark, ponieważ zmiana koloru w preferencjach Terminal.app w innych motywach działa.
agweber

Odpowiedzi:

4

Sugerowałbym zainstalowanie GNU Core Utilities poprzez Homebrew, który da ci wersję „Linux” ls(zamiast wersji FreeBSD dostarczanej z OS X), a także inne potężne narzędzia

brew update
brew install coreutils

Powinieneś być w stanie wyświetlać kolory za pomocą:

gls --color

Dodatkowo przeczytaj ostrzeżenia, aby skonfigurować ŚCIEŻKĘ, abyś mógł używać poleceń glsz ich normalnymi nazwami, tj . ls:

$ brew info coreutils
coreutils: stable 8.23 (bottled)
https://www.gnu.org/software/coreutils
Conflicts with: ganglia, idutils
/usr/local/Cellar/coreutils/8.23 (214 files, 10M)
  Poured from bottle
/usr/local/Cellar/coreutils/8.23_1 (214 files, 10M) *
  Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/coreutils.rb
==> Dependencies
Build: xz 
==> Caveats
All commands have been installed with the prefix 'g'.

If you really need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:

    PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"

Additionally, you can access their man pages with normal names if you add
the "gnuman" directory to your MANPATH from your bashrc as well:

    MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"
Czas na olej napędowy
źródło
Warto zauważyć, że gls (GNU ls) nie włącza kolorów, po prostu definiując zmienną środowiskową CLICOLOR, tak jak robi to domyślna komenda BSD ls z OS X. Ponadto przełącznik -G, aby włączyć kolor w BSD ls, nie działa dla GNU ls, ani --color nie działa dla BSD ls. Musisz zdefiniować alias dla ls, aby dodać przełącznik --color, jeśli chcesz pokolorować wszystkie polecenia ls. Dla odniesienia z „man ls” (smak BSD): „-G Włącz kolorowane wyjście. Ta opcja jest równoważna zdefiniowaniu CLICOLOR w środowisku”.
Mark Edington,
Używając gls --color po zainstalowaniu coreutils otrzymałem domyślną kolorystykę, a nie kolory z mojego LSCOLORS var. Odkąd zmieniłem ścieżkę do domyślnych narzędzi GNU według ich zwykłych nazw, po prostu zrobiłem rm, which lsaby wrócić do / bin / ls, który działał dobrze. Zaskakująco wkurzyło to obecną powłokę, która nie mogła już znaleźć ls, ale nowe powłoki działały dobrze. bash nie ma powtórki, więc nie rozumiem, dlaczego zawiesił się na / usr / local / opt / coreutils / libexec / gnubin / ls
Aaron McMillin
1

W Terminalu Temrinal> Preferencje wybierz profil dla używanego typu sesji i sprawdź na karcie Zaawansowane, jakiej deklaracji terminala używasz. Najprawdopodobniej wybrany nie obsługuje kolorowania ANSI. xterm-256color powinien obsługiwać to, czego oczekujesz.

ColonelMode
źródło
Właśnie sprawdziłem, terminal jest już ustawiony na xterm-256color (zaktualizowane pytanie, aby odzwierciedlić tę i inne informacje)
Shahbaz