Как было объявлено в моем последнем сообщении, я спросил своего коллегу Тиллмана , разрешено ли мне публиковать его замечательное расширение для zshell (как вы, возможно, уже решили, что он дает свое ОК!).
И вот оно:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# Required to have the colour namesautoload colors zsh/terminfoif [[ "$terminfo[colors]" -ge 8 ]]; then colorsfifor color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}' eval PR_LIGHT_$color='%{$fg[${(L)color}]%}' (( count = $count + 1 ))donePR_NO_COLOUR="%{$terminfo[sgr0]%}" # Thanks Tillmanfunction get_color(){BRANCH=`git rev-parse --abbrev-ref HEAD`case "$BRANCH" in*master*) COLOR=${PR_RED} ;;*hotfix*) COLOR=${PR_MAGENTA} ;;*release-candidate*) COLOR=${PR_YELLOW} ;;*release*) COLOR=${PR_YELLOW} ;;*bugfix*) COLOR=${PR_CYAN} ;;*develop*) COLOR=${PR_BLUE} ;;*) COLOR=${PR_GREEN} ;;esacecho $COLOR} |
Отображение цветов такое же, как на этих рисунках
Ветвь к Окружающей среде / Отображение профиля
Применение может быть сделано, например, при добавлении этого помощника состояния git и уточнения его с помощью функции get_color.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
function git_status () { local output gs=$(git status 2> /dev/null) if [[ $? == 128 ]]; then return fi ref=$(git symbolic-ref HEAD 2> /dev/null) || return output=${$(get_color)}" "${ref#refs/heads/} if echo "$gs" | grep -q "Changes to be committed"; then output=${output}${PR_GREEN}+ fi if echo "$gs" | grep -Eq "(Changes not staged for commit|Changed but not updated)"; then output=${output}${PR_RED}! fi if echo "$gs" | grep -q "Untracked files"; then output=${output}${PR_RED}? fi echo "${output}${PR_NO_COLOUR}"} PROMPT=$'%(?,${PR_GREEN}+,${PR_RED}-)${PR_NO_COLOUR} %(4c,./%1~,%~) $(git_status) %(!.${PR_RED}#${PR_NO_COLOUR} .%% )' |
По крайней мере, несколько примеров:
Ссылка: GIT & ZShell: раскрасьте свою оболочку в зависимости от вашей ветви от нашего партнера JCG Питера Даума в блоге Coders Kitchen .

