Właśnie przełączyłem się na Macbook Air. Zainstalowałem Zsh za pomocą HomeBrew, ale kiedy używam trochę kodu, który (pierwotnie miałem) w moim .zshrc
, pojawia się błąd mówiąc o tym .dircolors was not found
.
Poniżej znajduje się kod, o którym mowa:
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'
Czy dircolors
nie dostarczany z Mac OS X? Jak mam to zainstalować?
Aktualizacja:
Jeśli uruchomię dircolors bezpośrednio na powłoce, otrzymuję:
bash: dircolors; command not found
dircolors -b
wydaje się podejrzane, ale na moim komputerze działa bez~/.dircolors
pliku.dircolors
ręcznie w powłoce, aby sprawdzić, czy plik binarny istnieje i znajduje się w pliku$PATH
..dircolors was not found
a nie odircolors
? Nie madircolors
komendy w OSX, chyba że zainstalujesz ją samodzielnie, jest ona specyficzna dla Linuksa (a ściślej dla jądra GNU).dircolors
uzyskać:bash: dircolors: command not found
. Kod, który opublikowałem w OP został automatycznie wygenerowany przez Zsh na maszynie z systemem Linux. Myślałem, że mogę bezpośrednio sklonować mój system.zshrc
do Mac OS X. Czy wiesz, co robi kod w moim OP, czy masz jakieś sugestie, jak go zmodyfikować, aby wprowadzić równoważną funkcjonalność do Mac OS X?Odpowiedzi:
Polecenie
dircolors
jest specyficzne dla rdzeni GNU, więc znajdziesz je w niewbudowanym systemie Linux i Cygwin, ale nie w innych systemach uniksowych, takich jak OSX. Wygenerowane ustawienia.zshrc
nie są przenośne na OSX.Ponieważ używasz kolorów domyślnych, możesz przekazać pusty ciąg znaków,
list-colors
aby uzyskać kolory w uzupełnieniach plików.Aby uzyskać kolory za pomocą rzeczywistego
ls
polecenia , ustawCLICOLOR
zmienną środowiskową w OSX, a także ustawLSCOLORS
(patrz instrukcja formatu), jeśli chcesz zmienić kolory.Jeśli chcesz ustawić kolory inne niż domyślne (
dircolors
z argumentem pliku), zalecam kodowanie wyjściadircolors -b ~/.dircolors
w twoim pliku.zshrc
i używanie tych ustawień zarówno dla zsh jak i GNU.źródło
dircolors
jest podanagdircolors
przezbrew
„scoreutils
opakowaniu.Ponieważ FreeBSD nie ma polecenia,
dircolor
a OS X ma bazę FreeBSD, nie można go używać.Najprostszą rzeczą jest użycie
w twoim
.zshrc
i.bashrc
i usuńeval "$(dircolors -b)"
. Aby zmienić kolory, możesz użyć zmiennej środowiskowejLSCOLORS
. Na przykład:Możesz dowiedzieć się więcej na ten temat na stronie man za pomocą
Alternatywą
export CLICOLOR=YES
jest użycie aliasu dlals
Niektórzy sugerowali instalację GNU-Coreutils z portów Mac, ale moim zdaniem jest to przesada. Port można znaleźć tutaj
źródło
Nie robię już tego całego Maca, więc nie mam nic do przetestowania, ale starając się, aby działało to na FreeBSD, udało mi się dowiedzieć, jak to zrobić z portów. Pamiętam, że OSX ma takie rzeczy
brew
imacports
- Spróbuj zainstalować z niego jądra GNU, jeśli naprawdę chceszdircolors
pracować. Miałem również ustawić aliasdircolors
dogdircolors
jak to jest polecenie, które porty FreeBSD instalowane jako zabawę. Powodzenia dla każdego, kto skończy próbować!Oto link do kogoś, kto sprowadza coreutils poprzez napar:
http://www.topbug.net/blog/2013/04/14/install-and-use-gn-command-line-tools-in-mac-os-x/
źródło