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 Code hatte .zshrc
, erhalte ich die Fehlermeldung .dircolors was not found
.
Unten ist der fragliche 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
nicht mit Mac OS X geliefert? Wie soll ich es installieren?
Aktualisieren:
Wenn ich dircolors direkt auf der Shell laufen lasse, erhalte ich:
bash: dircolors; command not found
dircolors -b
scheint verdächtig, aber auf meinem Computer funktioniert es ohne~/.dircolors
Datei einwandfrei.dircolors
manuell in einer Shell auszuführen, um festzustellen, ob die Binärdatei vorhanden ist und sich in der befindet$PATH
..dircolors was not found
und nicht darumdircolors
? Unterdircolors
OSX gibt es keinen Befehl, es sei denn, Sie haben ihn selbst installiert. Er ist Linux-spezifisch (oder genauer gesagt GNU-Coreutils).dircolors
erhalte ich:bash: dircolors: command not found
. Der Code, den ich im OP gepostet habe, wurde von Zsh auf einem Linux-Computer automatisch generiert. Ich dachte, ich könnte meine.zshrc
direkt auf meinen Mac OS X klonen . Wissen Sie, was der Code in meinem OP bewirkt, oder haben Sie Vorschläge, wie Sie ihn ändern können, um die entsprechende Funktionalität für Mac OS X bereitzustellen?Antworten:
Der Befehl
dircolors
ist spezifisch für GNU-Coreutils, daher finden Sie ihn unter nicht eingebettetem Linux und Cygwin, jedoch nicht auf anderen Unix-Systemen wie OSX. Die generierten Einstellungen in Ihrem.zshrc
sind nicht auf OSX übertragbar.Da Sie die Standardfarben verwenden, können Sie eine leere Zeichenfolge an übergeben
list-colors
, um Farben in Dateivervollständigungen abzurufen.Legen Sie für Farben mit dem Befehl actual
ls
dieCLICOLOR
Umgebungsvariable unter OSX fest und legen SieLSCOLORS
(siehe Handbuch für das Format) fest, ob Sie die Farben ändern möchten.Wenn Sie nicht standardmäßige Farben festlegen
dircolors
möchten ( mit einem Datei-Argument), würde ich empfehlen, die Ausgabe vondircolors -b ~/.dircolors
in Ihrem fest zu codieren.zshrc
und diese Einstellungen sowohl für zsh als auch für GNU ls zu verwenden.quelle
dircolors
ist als vorgesehen ,gdircolors
durchbrew
‚s -coreutils
Paket.Da FreeBSD keinen Befehl hat
dircolor
und OS X die Basis von FreeBSD hat, können Sie es nicht verwenden.Das Einfachste ist zu benutzen
in deinem
.zshrc
und.bashrc
und entferneeval "$(dircolors -b)"
. Um die Farben zu ändern, können Sie die Umgebungsvariable verwendenLSCOLORS
. Beispielsweise:Mehr dazu erfahren Sie in der Manpage mit
Eine Alternative zu
export CLICOLOR=YES
ist die Verwendung eines Alias fürls
Einige schlugen vor, die GNU-Coreutils von Mac Ports zu installieren, aber meiner Meinung nach ist dies ein Overkill. Den Hafen finden Sie hier
quelle
Ich mache nicht mehr die ganze Mac-Sache, also habe ich nichts mehr zum Testen, aber auf der Suche nach einer funktionierenden Version von FreeBSD habe ich es geschafft, herauszufinden, wie dies von den Ports aus funktioniert. Ich erinnere mich, dass OSX solche Sachen hat
brew
undmacports
- Versuchen Sie, die GNU-Coreutils von hier aus zu installieren, wenn Sie wirklich arbeiten wollendircolors
. Ich musste auch einen Alias für setzendircolors
,gdircolors
da dies der Befehl ist, als den FreeBSD-Ports den Spaß installierten. Viel Glück für alle, die dies ausprobieren!Hier ist ein Link zu jemandem, der die Coreutils per Brew runterholt:
http://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/
quelle