Acabo de cambiar a un Macbook Air. Instalé zsh usando homebrew, pero cuando uso parte del código que (originalmente tenía) en mi .zshrc
, aparece un error que dice que .dircolors was not found
.
A continuación se muestra el código en cuestión:
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'
Es dircolors
no se envía con Mac OS X? ¿Cómo debo instalarlo?
Actualizar:
Si ejecuto dircolors directamente en el shell, obtengo:
bash: dircolors; command not found
Respuesta aceptada:
El comando dircolors
es específico de GNU coreutils, por lo que lo encontrará en Linux no integrado y en Cygwin, pero no en otros sistemas Unix como OSX. La configuración generada en su .zshrc
no son portátiles para OSX.
Como está utilizando los colores predeterminados, puede pasar una cadena vacía a list-colors
para obtener colores en las terminaciones de archivos.
Para colores con los ls
reales comando, configure el CLICOLOR
variable de entorno en OSX, y también establecer LSCOLORS
(consulte el manual para el formato) si desea cambiar los colores.
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
Si desea establecer colores no predeterminados (dircolors
con un argumento de archivo), mi recomendación sería codificar la salida de dircolors -b ~/.dircolors
en su .zshrc
y use esta configuración tanto para zsh como para 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