Terminal não exibindo cores para listagens de diretório

9

Não sei por que minha sessão do bash não mostra cores. Eu tentei o Terminal, assim como o iTerm.

Eu tentei:

  1. ls -G
  2. Configuração export CLICOLOR=1eexport LSCOLORS=GxFxCxDxBxegedabagaced
  3. Usando temas diferentes, como solarizado e algo mais

As versões do meu software são:

  1. bash: GNU bash, versão 3.2.51 (1) -release (x86_64-apple-darwin13)
  2. osx: 10.9.2

Eu tenho o Homebrew instalado

Não sei que outras informações podem ser úteis. Eu passo muito tempo no shell, esse problema está se tornando muito chato :)

edit: nas preferências do terminal, tenho 'Declarar terminal como: xterm-256color' e 'Exibir cores ANSI' junto com 'Usar cores brilhantes para texto em negrito'

Shahbaz
fonte
Tente executar printf '\e[32mtest\n', se isso funcionar, é um problema ls.
0942v8653
Eu também estou tendo esse problema. Para estender o que você tentou, o problema persiste com o comando gls do coreutils. O comentário acima altera com êxito a cor do prompt. Meu problema parece estar com o tema SolarizedDark, pois a alteração da cor nas preferências do Terminal.app em outros temas funciona.
agweber

Respostas:

4

Sugiro instalar o GNU Core Utilities via Homebrew, que fornecerá a versão "Linux" ls(em vez da versão FreeBSD que acompanha o OS X), além de outras ferramentas poderosas

brew update
brew install coreutils

Você deve poder mostrar cores com:

gls --color

Além disso, leia as advertências para configurar seu PATH, para que você possa usar comandos como glscom seus nomes normais, ou seja 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"
Dieseltime
fonte
Vale notar que o gls (GNU ls) não habilita a cor simplesmente definindo a variável de ambiente CLICOLOR como o comando padrão BSD ls do OS X. Além disso, a opção -G para ativar cores no BSD ls não funciona para o GNU ls nem --color funciona para o BSD ls. É necessário definir um alias para ls para adicionar a opção --color se desejar que todos os seus comandos ls sejam coloridos. Para referência de "man ls" (sabor BSD): "-G Ativar saída colorida. Esta opção é equivalente à definição de CLICOLOR no ambiente".
precisa
Usando gls --color após a instalação do coreutils, obtive a cor padrão, não as cores da minha var. LSCOLORS. Desde que eu mudei meu caminho para o padrão das ferramentas gnu por seus nomes habituais, eu apenas rm which lspara voltar ao / bin / ls, que funcionava bem. Surpreendentemente, isso irritou a concha atual, que não conseguia mais encontrar ls, mas novas conchas funcionavam bem. festa não tem uma repetição, então eu não entendo por que ele ficou pendurado em / usr / local / opt / coreutils / libexec / gnubin / ls
Aaron McMillin
1

No Terminal> Preferências do Temrinal, selecione o perfil para o tipo de sessão que você está usando e verifique na guia Avançado qual declaração de terminal você está usando. Provavelmente o selecionado não suporta a coloração ANSI. O xterm-256color deve suportar o que você espera.

ColonelMode
fonte
Acabei de verificar, terminal já está definido para xterm-256color (atualizado pergunta para refletir este e outros info)
Shahbaz