Saya baru saja beralih ke Macbook Air. Saya menginstal zsh menggunakan homebrew, tetapi ketika saya menggunakan beberapa kode yang saya (awalnya) di .zshrc
saya , saya mendapatkan pesan kesalahan yang mengatakan bahwa .dircolors was not found
.
Di bawah ini adalah kode yang dimaksud:
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'
Apakah dircolors
tidak dikirimkan dengan Mac OS X? Bagaimana cara menginstalnya?
Pembaruan:
Jika saya menjalankan dircolors langsung di shell saya mendapatkan:
bash: dircolors; command not found
Jawaban yang Diterima:
Perintah dircolors
khusus untuk GNU coreutils, jadi Anda akan menemukannya di Linux non-embedded dan di Cygwin tetapi tidak pada sistem unix lain seperti OSX. Pengaturan yang dihasilkan di .zshrc
. Anda tidak portabel untuk OSX.
Karena Anda menggunakan warna default, Anda dapat meneruskan string kosong ke list-colors
untuk mendapatkan warna dalam penyelesaian file.
Untuk warna dengan ls
actual yang sebenarnya perintah, atur CLICOLOR
variabel lingkungan pada OSX, dan juga mengatur LSCOLORS
(lihat manual untuk formatnya) jika Anda ingin mengubah warna.
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
Jika Anda ingin mengatur warna non-default (dircolors
dengan argumen file), rekomendasi saya adalah membuat hard-code output dircolors -b ~/.dircolors
di .zshrc
. Anda dan gunakan pengaturan ini untuk zsh dan 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