Actualizar:

Actualizar:

Acabo de cambiarme a una Macbook Air. Instalé zsh usando homebrew, pero cuando uso parte del código que tenía (originalmente) en mi .zshrc, aparece un error que dice eso .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'

¿ dircolorsNo 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

Respuesta1

El comando dircolorses 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 .zshrcno es portátil a OSX.

Como estás usando los colores predeterminados, puedes pasar una cadena vacía al list-colorspara obtener colores en las terminaciones de archivos.

Para colores con ellscomando real, configure la CLICOLORvariable de entorno en OSX y también configure LSCOLORS(consulte el manual para conocer 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 ( dircolorscon un argumento de archivo), mi recomendación sería codificar la salida de dircolors -b ~/.dircolorssu .zshrcy usar estas configuraciones 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

Respuesta2

Como FreeBSD no tiene comando dircolory OS X tiene la base de FreeBSD, no puedes usarlo.

Lo más sencillo es utilizar

export CLICOLOR=YES

en tu .zshrcy .bashrcy eliminar eval "$(dircolors -b)". Para cambiar los colores puedes usar la variable de entorno LSCOLORS. Por ejemplo:

export LSCOLORS="Gxfxcxdxbxegedabagacad"

Puede obtener más información al respecto en la página de manual con

man ls

Una alternativa export CLICOLOR=YESes utilizar un alias parals

alias ls=ls -G

Algunos sugirieron instalar GNU-Coreutils desde los puertos Mac, pero en mi opinión esto es excesivo. Puedes encontrar el puerto.aquí

Respuesta3

Ya no hago todo esto de Mac, así que no tengo nada con qué probar, pero en la búsqueda para que esto funcione en FreeBSD, logré descubrir cómo hacer que esto funcione desde los puertos. Recuerdo que OSX tiene cosas como brewy macports: intenta instalar GNU coreutils desde aquí si realmente quieres dircolorstrabajar. También tuve que establecer un alias para dircolorsya gdircolorsque este es el comando con el que los puertos FreeBSD instalaron la diversión. ¡Buena suerte a cualquiera que termine probando esto!

Aquí hay un enlace para que alguien obtenga los coreutils mediante brew:

http://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/

Respuesta4

Puede instalar dircolorsdesde el paquete Homebrew coreutils:

 brew install coreutils

Sin embargo, GNU coreutils no están incluidos de forma PATHpredeterminada. Edite su ~/.zshrcy ~/.bashrcagregue:

  export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"

Ahora, después de iniciar una nueva sesión de Shell dircolorsdebería funcionar.

información relacionada