Настройте различные цвета файлов, папок, двоичных файлов в команде ouput of ls в zsh / MacOS - PullRequest
1 голос
/ 26 апреля 2020

Я только что переключился на zsh с bash на моем MacOS 10.14.6 и хочу знать, как получить вывод содержимого папки (например, при вводе команды ls) другого цвета

Например, если я наберу

[mymac@Documents]$ls
Folder1
File1.txt
@stuff

, я бы хотел, чтобы три элемента вывода были в трех разных цветах. Как я могу соответственно отредактировать файл .zshrc?

РЕДАКТИРОВАТЬ

Я попытался выполнить следующую команду с соответствующим выводом ошибки:

$ ls --color=auto
ls: illegal option -- -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]

То же случилось с $ alias ls='ls --color=always'

. Он работал со следующей командой, но цвет папок темно-синий и, следовательно, очень трудно читать.

alias ls='ls -G'

Я также видел эти 2 другие ссылки, но это не помогло: ТАК вопрос

Есть ли способ вручную определить цвета?

РЕДАКТИРОВАТЬ 2 Я нашел этот кусок кода, который работал для меня (с там )

COLOR_RED="\033[0;31m"
COLOR_YELLOW="\033[0;33m"
COLOR_GREEN="\033[0;32m"
COLOR_OCHRE="\033[38;5;95m"
COLOR_BLUE="\033[0;34m"
COLOR_WHITE="\033[0;37m"
COLOR_RESET="\033[0m"

#git_color
function git_color {
  local git_status="$(git status 2> /dev/null)"

  if [[ ! $git_status =~ "working directory clean" ]]; then
    echo -e $COLOR_RED
  elif [[ $git_status =~ "Your branch is ahead of" ]]; then
    echo -e $COLOR_YELLOW
  elif [[ $git_status =~ "nothing to commit" ]]; then
    echo -e $COLOR_GREEN
  else
    echo -e $COLOR_OCHRE
  fi
}

#git_branch
function git_branch {
  local git_status="$(git status 2> /dev/null)"
  local on_branch="On branch ([^${IFS}]*)"
  local on_commit="HEAD detached at ([^${IFS}]*)"

  if [[ $git_status =~ $on_branch ]]; then
    local branch=${BASH_REMATCH[1]}
    echo "($branch)"
  elif [[ $git_status =~ $on_commit ]]; then
    local commit=${BASH_REMATCH[1]}
    echo "($commit)"
  fi
}

#PS1='\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]'
#PS1+="\[\$(git_color)\]"        # colors git status
#PS1+="\$(git_branch)"           # prints current branch
#PS1+="\[$COLOR_BLUE\]\[$COLOR_RESET\]\$ "
#export PS1

export LC_ALL=en_US.UTF-8
export CLICOLOR=1
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
...