Aktualisieren:

Aktualisieren:

Ich bin gerade auf ein Macbook Air umgestiegen. Ich habe zsh mit Homebrew installiert, aber wenn ich einen Teil des Codes verwende, den ich (ursprünglich) in meinem hatte .zshrc, erhalte ich eine Fehlermeldung, die besagt, dass .dircolors was not found.

Unten ist der betreffende Code:

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'

Wird dircolorses nicht mit Mac OS X mitgeliefert? Wie soll ich es installieren?

Aktualisieren:

Wenn ich „Dircolors“ direkt auf der Shell ausführe, erhalte ich:

bash: dircolors; command not found

Antwort1

Der Befehl dircolorsist spezifisch für GNU Coreutils, Sie finden ihn also auf nicht eingebettetem Linux und auf Cygwin, aber nicht auf anderen Unix-Systemen wie OSX. Die in Ihrem generierten Einstellungen .zshrcsind nicht auf OSX portierbar.

Da Sie die Standardfarben verwenden, können Sie eine leere Zeichenfolge an den list-colorsum Farben in Dateivervollständigungen zu erhalten.

Für Farben mit demtatsächlicher lsBefehl, legen Sie die CLICOLORUmgebungsvariable unter OSX fest und legen Sie sie auch fest LSCOLORS(Informationen zum Format finden Sie im Handbuch), wenn Sie die Farben ändern möchten.

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

Wenn Sie nicht standardmäßige Farben festlegen möchten ( dircolorsmit einem Dateiargument), würde ich empfehlen, die Ausgabe dircolors -b ~/.dircolorsin Ihrem fest zu codieren .zshrcund diese Einstellungen sowohl für zsh als auch für GNU ls zu verwenden.

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

Antwort2

Da FreeBSD keinen Befehl hat dircolorund OS X auf FreeBSD basiert, können Sie es nicht verwenden.

Am einfachsten ist es,

export CLICOLOR=YES

in Ihrem .zshrcund .bashrcund entfernen eval "$(dircolors -b)". Um die Farben zu ändern, können Sie die Umgebungsvariable verwenden LSCOLORS. Zum Beispiel:

export LSCOLORS="Gxfxcxdxbxegedabagacad"

Weitere Informationen hierzu finden Sie in der Manpage mit

man ls

Eine Alternative dazu export CLICOLOR=YESist die Verwendung eines Alias ​​fürls

alias ls=ls -G

Einige haben vorgeschlagen, die GNU-Coreutils von Mac Ports zu installieren, aber meiner Meinung nach ist das ein Overkill. Den Port finden SieHier

Antwort3

Ich mache das ganze Mac-Zeug nicht mehr, also habe ich nichts zum Testen, aber bei dem Versuch, dies unter FreeBSD zum Laufen zu bringen, habe ich herausgefunden, wie man es von Ports aus zum Laufen bringt. Ich erinnere mich, dass OSX Dinge wie brewund hat macports- Versuchen Sie, die GNU-Coreutils davon zu installieren, wenn Sie wirklich arbeiten möchten . Ich musste auch einen Alias ​​für dircolorsfestlegen, da dies der Befehl ist, mit dem FreeBSD-Ports den Spaß installiert haben. Viel Glück an alle, die dies ausprobieren!dircolorsgdircolors

Hier ist ein Link zu jemandem, der die Coreutils über Brew herunterlädt:

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

Antwort4

Sie können es dircolorsaus dem Homebrew-Coreutils-Paket installieren:

 brew install coreutils

PATHAllerdings sind GNU-Coreutils standardmäßig nicht darin enthalten . Bearbeiten Sie Ihre ~/.zshrcund ~/.bashrcfügen Sie hinzu:

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

Jetzt sollte es nach dem Starten einer neuen Shell-Sitzung dircolorsfunktionieren.

verwandte Informationen