Shell
Mac OS X:找不到目錄顏色?
我剛換了Macbook Air。我使用自製軟體安裝了 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
該命令
dircolors
特定於 GNU coreutils,因此您可以在非嵌入式 Linux 和 Cygwin 上找到它,但在 OSX 等其他 unix 系統上找不到。您生成的設置.zshrc
不能移植到 OSX。由於您使用的是預設顏色,因此您可以將一個空字元串傳遞給
list-colors
以獲取文件完成中的顏色。對於使用實際
ls
命令的顏色,請在 OSX 上設置環境變數,如果要更改顏色CLICOLOR
,還要設置(格式參見手冊)。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