Acabei de mudar para um Macbook Air. Eu instalei o zsh usando o homebrew, mas quando uso algum 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 dircolors
é fornecido com o Mac OS X? Como devo instalá-lo?
Atualizar:
Se eu executar dircolors diretamente no shell, recebo:
bash: dircolors; command not found
dircolors -b
parece suspeito, mas no meu computador ele funciona sem um~/.dircolors
arquivo muito bem.dircolors
manualmente em um shell para ver se o binário existe e está localizado no diretório$PATH
..dircolors was not found
e não édircolors
? Não existedircolors
comando no OSX, a menos que você o tenha instalado, é específico para Linux (ou mais precisamente para GNU coreutils).dircolors
eu recebo:bash: dircolors: command not found
. O código que publiquei no OP foi gerado automaticamente pelo Zsh em uma máquina Linux. Eu pensei que poderia clonar meu.zshrc
no meu Mac OS X diretamente. Você sabe o que o código no meu OP faz ou tem alguma sugestão sobre como modificá-lo para trazer a funcionalidade equivalente ao Mac OS X?Respostas:
O comando
dircolors
é específico ao coreutils do GNU, portanto você o encontrará no Linux não incorporado e no Cygwin, mas não em outros sistemas unix, como o OSX. As configurações geradas no seu.zshrc
computador não são portáteis para o OSX.Como você está usando as cores padrão, você pode passar uma string vazia para a
list-colors
para obter cores nas conclusões do arquivo.Para cores com o comando real
ls
, defina aCLICOLOR
variável de ambiente no OSX e também definaLSCOLORS
(consulte o manual para o formato) se desejar alterar as cores.Se você quiser definir cores não padrão (
dircolors
com um argumento de arquivo), minha recomendação seria codificar a saída dodircolors -b ~/.dircolors
seu.zshrc
e usar essas configurações para o zsh e o GNU ls.fonte
dircolors
é fornecido comogdircolors
porbrew
'scoreutils
pacote.Como o FreeBSD não tem comando
dircolor
e o OS X tem a base do FreeBSD, você não pode usá-lo.A coisa mais simples é usar
na sua
.zshrc
e.bashrc
e removereval "$(dircolors -b)"
. Para alterar as cores, você pode usar a variável de ambienteLSCOLORS
. Por exemplo:Você pode descobrir mais sobre isso na página de manual com
Uma alternativa
export CLICOLOR=YES
é usar um alias parals
Alguns sugeriram instalar o GNU-Coreutils a partir de portas Mac, mas na minha opinião isso é um exagero. Você pode encontrar a porta aqui
fonte
Eu não faço mais o mac, então não tenho nada para testar, mas na busca para que isso funcione no FreeBSD, eu consegui descobrir como fazer isso funcionar no ports. Lembro-me de que o OSX tem coisas como
brew
emacports
- Tente instalar os GNU coreutils a partir disso, se você realmente quiserdircolors
trabalhar. Eu também tive que definir um alias paradircolors
agdircolors
como este é o comando que portos FreeBSD instalado a diversão como. Boa sorte para quem acaba tentando isso!Aqui está um link para alguém baixar os coreutils por meio do brew:
http://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/
fonte