Кольори завершення ZSH та OS X


26

Розглянемо цей мінімальний .zshrc:

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'

В OS X lsвикористовуються кольори, якщо CLICOLORвстановлено значення TRUE, а кольори, які використовуються, є LSCOLORSтиповим значенням exfxcxdxbxegedabagacad.

Як робити ls, друкуватимуть каталоги синім кольором. Але при цьому cd + TABZSH запропонує доповнити каталоги червоним та жирним шрифтом. У чому проблема і як я можу мати однакові кольори для завершення ZSH та ls?

macos  shell  colors  zsh 

Відповіді:


28

Вам потрібно уважно прочитати інструкцію: zshзнає, як поводитися LS_COLORS, що є варіантом lsкольорової конфігурації GNU / Linux , але ви використовуєте OSX / BSD LSCOLORS. Вони дуже різні, і, схоже zsh, не знають, як з цим впоратися.

LSCOLORS Приклад для червоного виходу:

bbbbbbbbbbbbbbbbbbbbbb

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:

Використовуйте, наприклад, цей інструмент ( також на Github ) для створення приємної кольорової схеми або відтворіть ту, яку ви використовуєте, скопіюйте її вихід для LinuxLS_COLORS , а потім встановіть наступні для встановлення кольорів:

# 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}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.