Mac OS X: dircolors bulunamadı?


19

Az önce bir Macbook Air'e geçtim. Homebrew kullanarak zsh yükledim, ama benim (aslında) kodum bazı kullandığımda .zshrc, bunu söyleyerek bir hata alıyorum .dircolors was not found.

Söz konusu kod aşağıdadır:

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'

Is dircolorsMac OS X ile birlikte verilmez? Nasıl kurmalıyım?

Güncelleme:

Dircolors doğrudan kabuk üzerinde çalıştırırsanız:

bash: dircolors; command not found


Hataya neden olan bu kodun gerçekten olduğundan emin misiniz? Sadece dircolors -bşüpheli görünüyor, ancak bilgisayarımda bir ~/.dircolorsdosya olmadan gayet iyi çalışıyor.
Martin von Wittich

dircolorsİkili var olup olmadığını görmek için bir kabukta el ile çalıştırmayı deneyin $PATH.
Martin von Wittich

Hata gerçekten .dircolors was not founddeğil dircolorsmi? dircolorsOSX'te kendiniz yüklemediğiniz sürece komut yoktur , Linux'a özgüdür (veya daha doğrusu GNU coreutils'e).
Gilles 'SO- kötü olmayı bırak'

Teşekkürler @Gilles. Ben kabuğunda yazdığınızda dircolorsalıyorum: bash: dircolors: command not found. OP'de gönderdiğim kod, Zsh tarafından bir Linux makinesinde otomatik olarak oluşturuldu. .zshrcMac OS X'ime doğrudan klonlayabileceğimi düşündüm . OP'mdeki kodun ne yaptığını biliyor musunuz veya eşdeğer işlevselliği Mac OS X'e getirmek için nasıl değiştirileceğine dair herhangi bir öneriniz var mı?
Amelio Vazquez-Reina

Yanıtlar:


15

Komut dircolorsGNU coreutils'e özgüdür, bu nedenle gömülü olmayan Linux ve Cygwin'de bulabilirsiniz, ancak OSX gibi diğer unix sistemlerinde bulamazsınız. Oluşturduğunuz ayarlar .zshrcOSX'e taşınabilir değildir.

Varsayılan renkleri kullandığınızdan, list-colorsdosya tamamlamalarında renkleri almak için boş bir dize geçirebilirsiniz .

İle renkler için gerçek lskomuta , set CLICOLOROSX üzerinde ortam değişkeni ve ayrıca set LSCOLORSrenkleri değiştirmek isterseniz (biçim için manuel bakınız).

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

Eğer (varsayılan olmayan renkleri ayarlamak istiyorsa dircolorsbir dosya argümanı ile), benim önerim sabit koduna çıktısı olacaktır dircolors -b ~/.dircolorsGözlerinde farklı .zshrcve zsh ve GNU ls ikisi için bu ayarları kullanın.

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

3
GNU dircolorsolarak sağlanır gdircolorsgöre brewbireyin coreutilspaketi.
m8mble

13

FreeBSD'nin bir komutu olmadığı dircolorve OS X'in FreeBSD'nin tabanı olduğu için onu kullanamazsınız.

En basit şey kullanmak

export CLICOLOR=YES

senin içinde .zshrcve .bashrcve kaldır eval "$(dircolors -b)". Renkleri değiştirmek için ortam değişkenini kullanabilirsiniz LSCOLORS. Örneğin:

export LSCOLORS="Gxfxcxdxbxegedabagacad"

Bununla ilgili daha fazla bilgiyi man sayfasında bulabilirsiniz.

man ls

Alternatif olarak export CLICOLOR=YES,ls

alias ls=ls -G

Bazıları GNU-Coreutils'i Mac Ports'tan kurmayı önerdi, ama bence bu aşırı bir yük. Limanı burada bulabilirsiniz


7

Artık tüm mac işini yapmıyorum, bu yüzden test edilecek bir şeyim yok, ancak bunu FreeBSD'de çalıştırabilmek için, bağlantı noktalarından nasıl çalışacağını anlamayı başardım. OSX gibi şeyler olduğunu hatırlıyorum brewve macports- Gerçekten dircolorsçalışmak istiyorsanız, GNU coreutils kurmayı deneyin . Ayrıca için bir takma ad ayarlamak zorunda dircolorsiçin gdircolorsbu FreeBSD portları olarak eğlenceli yüklü olduğu komuta olduğu gibi. Bunu denemek sonunda herkese iyi şanslar!

İşte demlemek yoluyla coreutils aşağı almak birine bağlantı:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.