고쳐 쓰다:

고쳐 쓰다:

방금 맥북 에어로 바꿨습니다. homebrew를 사용하여 zsh를 설치했지만 원래 가지고 있던 일부 코드 .zshrc를 사용할 때 .dircolors was not found.

문제의 코드는 다음과 같습니다.

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'

dircolorsMac OS X에는 포함되어 있지 않나요 ? 어떻게 설치해야 하나요?

고쳐 쓰다:

쉘에서 직접 dircolors를 실행하면 다음과 같은 결과를 얻습니다.

bash: dircolors; command not found

답변1

이 명령은 dircolorsGNU coreutils에만 해당되므로 내장되지 않은 Linux 및 Cygwin에서는 찾을 수 있지만 OSX와 같은 다른 UNIX 시스템에서는 찾을 수 없습니다. 생성한 설정은 .zshrcOSX로 이식할 수 없습니다.

기본 색상을 사용하고 있으므로 빈 문자열을 list-colors파일 완성에서 색상을 가져옵니다.

색상에 대한실제 ls명령CLICOLOR, 색상을 변경하려는 경우에도 OSX에서 환경 변수를 설정합니다 (형식은 설명서 참조).LSCOLORS

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

기본이 아닌 색상을 설정하려면( dircolors파일 매개변수 사용) dircolors -b ~/.dircolors출력을 하드코딩 .zshrc하고 zsh 및 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

답변2

FreeBSD에는 명령이 없고 dircolorOS X에는 FreeBSD 기반이 있으므로 사용할 수 없습니다.

가장 간단한 것은 사용하는 것입니다

export CLICOLOR=YES

.zshrc색상 을 .bashrc변경 하려면 eval "$(dircolors -b)"환경 변수를 사용할 수 있습니다 LSCOLORS. 예를 들어:

export LSCOLORS="Gxfxcxdxbxegedabagacad"

매뉴얼 페이지에서 이에 대한 자세한 정보를 찾을 수 있습니다.

man ls

또 다른 방법 export CLICOLOR=YES은 별칭을 사용하는 것입니다.ls

alias ls=ls -G

어떤 사람들은 Mac 포트에서 GNU-Coreutils를 설치하는 것을 권장하지만 제 생각에는 이것은 과잉입니다. 항구를 찾을 수 있어요여기

답변3

나는 더 이상 Mac 전체 작업을 수행하지 않으므로 테스트할 것이 없지만 FreeBSD에서 이 작업을 수행하기 위해 포트에서 작동하게 하는 방법을 알아냈습니다. OSX에도 비슷한 기능이 있었던 것으로 기억합니다 brew. 실제로 작동하려면 macports여기에서 GNU coreutils를 설치해 보세요. 또한 재미삼아 FreeBSD 포트를 설치하는 명령에 대한 별칭도 설정 dircolors해야 했습니다 . 이것을 시도하는 사람에게 행운을 빕니다!dircolorsgdircolors

다음은 Brew를 통해 coreutils를 얻는 누군가의 링크입니다.

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

답변4

dircolorsHomebrew coreutils 패키지에서 설치할 수 있습니다 .

 brew install coreutils

PATH그러나 GNU coreutils는 기본적으로 포함되지 않습니다. 귀하의 것을 편집 ~/.zshrc하고 ~/.bashrc다음을 추가하십시오:

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

이제 새 셸 세션을 시작 dircolors하면 작동합니다.

관련 정보