Právě jsem přešel na Macbook Air. Nainstaloval jsem zsh pomocí homebrew, ale když použiji část kódu, který jsem (původně měl) ve svém .zshrc
, zobrazí se mi chyba, že .dircolors was not found
.
Níže je příslušný kód:
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'
Je dircolors
nedodává se s Mac OS X? Jak to mám nainstalovat?
Aktualizace:
Pokud spustím dircolors přímo na shell, dostanu:
bash: dircolors; command not found
Přijatá odpověď:
Příkaz dircolors
je specifický pro GNU coreutils, takže jej najdete na neembedded Linuxu a na Cygwin, ale ne na jiných unixových systémech, jako je OSX. Vygenerovaná nastavení ve vašem .zshrc
nejsou přenosné do OSX.
Protože používáte výchozí barvy, můžete do list-colors
předat prázdný řetězec získat barvy v dokončení souboru.
Pro barvy se skutečným ls
nastavte CLICOLOR
proměnnou prostředí na OSX a také nastavte LSCOLORS
(formát viz manuál), pokud chcete změnit barvy.
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
Pokud jste chtěli nastavit jiné než výchozí barvy (dircolors
s argumentem souboru), mým doporučením by bylo pevně zakódovat výstup dircolors -b ~/.dircolors
ve vašem .zshrc
a použijte tato nastavení pro zsh i GNU ls.
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