расцветка имен файлов при автодолнении в zsh


ramok аватар

ramok - Posted on 14 Февраль 2006

добавте в ~/.zshrc

eval `dircolors`
zstyle ':completion:*:default' list-colors "${(s.:.)LS_COLORS}"

теперь например при
$ cd /[TAB]
выведутся варианты имен файлов в цвете

цвета будут такие же как и при ls --color

если хотите настроить свои цвета то читаем
man dircolors
man 5 dir_colors

Вот более портируемый вариант, который будет работать и в *BSD системах где dircolors нет

if which dircolors > /dev/null; then
    eval `dircolors`
else
  LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:"
  LS_COLORS="${LS_COLORS}or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:"
  LS_COLORS="${LS_COLORS}*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:"
  LS_COLORS="${LS_COLORS}*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:"  
  LS_COLORS="${LS_COLORS}*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:"
  LS_COLORS="${LS_COLORS}*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:"
  LS_COLORS="${LS_COLORS}*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:"
  LS_COLORS="${LS_COLORS}*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:"
  export LS_COLORS
fi
zstyle ':completion:*:default' list-colors "${(s.:.)LS_COLORS}"
0
Ваша оценка: Ничего

У меня заработало только после того как я заключил ${(s.:.)LS_COLORS} в кавычки, т.е. вторая строка стала
zstyle ':completion:*:default' list-colors "${(s.:.)LS_COLORS}"
до этого zsh жаловался no matches found
Ошибка?

у меня все нормально
наверное у тебя включена какая нибуть опция расширенных файловых масок
--
Signature invent in progress 24% ##........