ZSH Hoàn thành màu sắc và OS X


26

Hãy xem xét .zshrc tối thiểu này:

export CLICOLOR=1;
export LSCOLORS=exfxcxdxbxegedabagacad; # It is the default value on OSX, so this line can be omitted

autoload -Uz compinit
compinit
zstyle ':completion:*' list-colors 'exfxcxdxbxegedabagacad'

Trên OS X, lssử dụng màu nếu CLICOLORđược đặt thành TRUE và màu được sử dụng là LSCOLORSgiá trị mặc định exfxcxdxbxegedabagacad.

Làm một lssẽ in các thư mục màu xanh lam. Nhưng khi thực hiện cd + TAB, ZSH sẽ đề xuất hoàn thành với các thư mục màu đỏ và in đậm. Vấn đề là gì và làm thế nào tôi có thể có cùng màu để hoàn thành ZSH và ls?

macos  shell  colors  zsh 

Câu trả lời:


28

Bạn cần đọc kỹ hướng dẫn: zshbiết cách xử lý LS_COLORS, đó là biến thể lscấu hình màu của GNU / Linux , nhưng bạn sử dụng OSX's / BSD LSCOLORS. Chúng rất khác nhau và dường zshnhư không biết cách xử lý cái sau.

LSCOLORS ví dụ cho đầu ra màu đỏ:

bbbbbbbbbbbbbbbbbbbbbb

LS_COLORS ví dụ cho đầu ra màu đỏ:

di=31;41:ln=31;41:so=31;41:pi=31;41:ex=31;41:bd=31;41:cd=31;41:su=31;41:sg=31;41:tw=31;41:ow=31;41:

Sử dụng ví dụ: công cụ này ( cũng trên Github ) để tạo một bảng màu đẹp hoặc tạo lại cái bạn sử dụng, sao chép đầu ra của nó cho LinuxLS_COLORS , sau đó sử dụng cách sau để đặt màu:

# between quotation marks is the tool output for LS_COLORS
export LS_COLORS="di=31;41:ln=31;41:so=31;41:pi=31;41:ex=31;41:bd=31;41:cd=31;41:su=31;41:sg=31;41:tw=31;41:ow=31;41:"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.