Термінал не відображає кольори для списків каталогів


8

Я не знаю, чому моя сесія bash не показує кольору. Я спробував термінал, а також iTerm.

Я намагався:

  1. ls -G
  2. Налаштування export CLICOLOR=1 і export LSCOLORS=GxFxCxDxBxegedabagaced
  3. Використання різних тем, таких як solarized і щось інше

Версії мого програмного забезпечення:

  1. bash: GNU bash, версія 3.2.51 (1) -реліз (x86_64-apple-darwin13)
  2. osx: 10.9.2

У мене встановлено Homebrew

Я не знаю, яка інша інформація може бути корисною. Я витрачаю багато часу на оболонку, ця проблема стає дуже дратує :)

edit: у налаштуваннях терміналу, я маю "Оголосити термінал як: xterm-256color" і "Показати кольори ANSI" разом з "Використовувати яскраві кольори для жирного тексту"


Спробуйте запустити printf '\e[32mtest\n', якщо це працює, це проблема з ls.
0942v8653

У мене також є така проблема. Щоб розширити те, що ви пробували, проблема не зникає з командою coreutils 'gls. Цей коментар успішно змінює колір підказки. Моя проблема, як видається, з темою SolarizedDark, як зміна кольору в параметрах Terminal.app в інших темах працює.
agweber

Відповіді:


3

Я б запропонував встановити Основні утиліти GNU через Homebrew, який дасть вам версію "Linux" ls (замість версії FreeBSD, що поставляється з OS X), а також інших потужних інструментів

brew update
brew install coreutils

Потім ви зможете відображати кольори за допомогою:

gls --color

Крім того, прочитайте застереження для налаштування PATH, щоб ви могли використовувати такі команди gls з їхніми звичайними іменами, тобто 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"

Варто зазначити, що gls (GNU ls) не вмикає колір, просто визначивши змінну середовища CLICOLOR як BSD ls за замовчуванням з OS X. Крім того, перемикач -G для увімкнення кольору в BSD ls не працює для GNU ls, а також - color для BSD ls. Ви повинні визначити псевдонім для ls, щоб додати перемикач --color, якщо ви хочете, щоб усі ваші команди ls були розфарбовані. Для посилання з "man ls" (аромат BSD): "-G Увімкнути кольоровий вихід. Цей параметр еквівалентний визначенню CLICOLOR в середовищі."
Mark Edington

Використовуючи gls --color після встановлення coreutils, я отримав забарвлення за замовчуванням, а не кольори з мого LSCOLORS var. Оскільки я змінював свій шлях до дефолтних інструментів за їхніми звичайними іменами, я просто зробив rm which ls повернутися до / bin / ls, який працював нормально. Дивно це розлютило нинішню оболонку, яка більше не могла знайти ls, але нові снаряди працювали нормально. bash не має повторного перегляду, тому я не розумію, чому він завис на / usr / local / opt / coreutils / libexec / gnubin / ls
Aaron McMillin

1

У терміналі Temrinal & gt; Налаштування виберіть профіль для типу сеансу, який ви використовуєте, і позначте на вкладці Додатково, яку декларацію для терміналу ви використовуєте. Швидше за все, вибраний не підтримує розмальовки ANSI. xterm-256color повинен підтримувати те, що ви очікуєте.


Я тільки що перевірив, термінал вже встановлено на xterm-256color (оновлено питання, щоб відобразити цю та іншу інформацію)
Shahbaz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.