
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 dircolors
es 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 dircolors
ist 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 .zshrc
sind nicht auf OSX portierbar.
Da Sie die Standardfarben verwenden, können Sie eine leere Zeichenfolge an den
list-colors
um Farben in Dateivervollständigungen zu erhalten.
Für Farben mit demtatsächlicher ls
Befehl, legen Sie die CLICOLOR
Umgebungsvariable 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 ( dircolors
mit einem Dateiargument), würde ich empfehlen, die Ausgabe dircolors -b ~/.dircolors
in Ihrem fest zu codieren .zshrc
und 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 dircolor
und OS X auf FreeBSD basiert, können Sie es nicht verwenden.
Am einfachsten ist es,
export CLICOLOR=YES
in Ihrem .zshrc
und .bashrc
und 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=YES
ist 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 brew
und hat macports
- Versuchen Sie, die GNU-Coreutils davon zu installieren, wenn Sie wirklich arbeiten möchten . Ich musste auch einen Alias für dircolors
festlegen, da dies der Befehl ist, mit dem FreeBSD-Ports den Spaß installiert haben. Viel Glück an alle, die dies ausprobieren!dircolors
gdircolors
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 dircolors
aus dem Homebrew-Coreutils-Paket installieren:
brew install coreutils
PATH
Allerdings sind GNU-Coreutils standardmäßig nicht darin enthalten . Bearbeiten Sie Ihre ~/.zshrc
und ~/.bashrc
fügen Sie hinzu:
export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"
Jetzt sollte es nach dem Starten einer neuen Shell-Sitzung dircolors
funktionieren.