방금 맥북 에어로 바꿨습니다. 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'
dircolors
Mac OS X에는 포함되어 있지 않나요 ? 어떻게 설치해야 하나요?
고쳐 쓰다:
쉘에서 직접 dircolors를 실행하면 다음과 같은 결과를 얻습니다.
bash: dircolors; command not found
답변1
이 명령은 dircolors
GNU coreutils에만 해당되므로 내장되지 않은 Linux 및 Cygwin에서는 찾을 수 있지만 OSX와 같은 다른 UNIX 시스템에서는 찾을 수 없습니다. 생성한 설정은 .zshrc
OSX로 이식할 수 없습니다.
기본 색상을 사용하고 있으므로 빈 문자열을
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에는 명령이 없고 dircolor
OS 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
해야 했습니다 . 이것을 시도하는 사람에게 행운을 빕니다!dircolors
gdircolors
다음은 Brew를 통해 coreutils를 얻는 누군가의 링크입니다.
http://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/
답변4
dircolors
Homebrew coreutils 패키지에서 설치할 수 있습니다 .
brew install coreutils
PATH
그러나 GNU coreutils는 기본적으로 포함되지 않습니다. 귀하의 것을 편집 ~/.zshrc
하고 ~/.bashrc
다음을 추가하십시오:
export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"
이제 새 셸 세션을 시작 dircolors
하면 작동합니다.