Atualizar:

Atualizar:

Acabei de mudar para um Macbook Air. Instalei o zsh usando o homebrew, mas quando uso parte do código que eu (originalmente tinha) no meu .zshrc, recebo um erro dizendo isso .dircolors was not found.

Abaixo está o código em questão:

zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true

zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'

Não é dircolorsfornecido com o Mac OS X? Como devo instalá-lo?

Atualizar:

Se eu executar dircolors diretamente no shell, recebo:

bash: dircolors; command not found

Responder1

O comando dircolorsé específico para GNU coreutils, então você o encontrará no Linux não embarcado e no Cygwin, mas não em outros sistemas Unix, como o OSX. As configurações geradas em seu .zshrcnão são portáveis ​​para o OSX.

Como você está usando as cores padrão, você pode passar uma string vazia para o list-colorspara obter cores nas conclusões do arquivo.

Para cores comlscomando real, defina a CLICOLORvariável de ambiente no OSX, e também defina LSCOLORS(veja o manual para o formato) se deseja alterar as cores.

if whence dircolors >/dev/null; then
  eval "$(dircolors -b)"
  zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
  alias ls='ls --color'
else
  export CLICOLOR=1
  zstyle ':completion:*:default' list-colors ''
fi

Se você quiser definir cores não padrão ( dircolorscom um argumento de arquivo), minha recomendação seria codificar a saída dircolors -b ~/.dircolorsem seu .zshrce usar essas configurações para zsh e GNU ls.

LS_COLORS=…
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
if whence dircolors >/dev/null; then
  export LS_COLORS
  alias ls='ls --color'
else
  export CLICOLOR=1
  LSCOLORS=…
fi

Responder2

Como o FreeBSD não tem comando dircolore o OS X tem a base do FreeBSD, você não pode usá-lo.

O mais simples é usar

export CLICOLOR=YES

em seu .zshrce .bashrce remova eval "$(dircolors -b)". Para alterar as cores você pode usar a variável de ambiente LSCOLORS. Por exemplo:

export LSCOLORS="Gxfxcxdxbxegedabagacad"

Você pode descobrir mais sobre isso na página de manual com

man ls

Uma alternativa export CLICOLOR=YESé usar um alias parals

alias ls=ls -G

Alguns sugeriram instalar o GNU-Coreutils a partir de portas Mac, mas na minha opinião isso é um exagero. Você pode encontrar o portoaqui

Responder3

Eu não faço mais essa coisa toda de mac, então não tenho nada para testar, mas na busca para fazer isso funcionar no FreeBSD, consegui descobrir como fazer isso funcionar a partir dos ports. Lembro-me que o OSX tem coisas como brewe macports- Tente instalar o GNU coreutils a partir disso se você realmente quiser dircolorstrabalhar. Eu também tive que definir um alias para, dircolorspois gdircolorseste é o comando com o qual as portas do FreeBSD instalaram a diversão. Boa sorte para quem acabar tentando isso!

Aqui está um link para alguém baixando os coreutils via brew:

http://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/

Responder4

Você pode instalar dircolorsa partir do pacote homebrew coreutils:

 brew install coreutils

No entanto, os coreutils GNU não estão incluídos no arquivo PATHpor padrão. Edite seu ~/.zshrce ~/.bashrcadicione:

  export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"

Agora, depois de iniciar uma nova sessão de shell, dircolorsdeve funcionar.

informação relacionada