Велосипеды были отметены сразу, а последовательное гугление вывело на эту статью. Собственно, практически всё и было взято оттуда, с небольшими изменениями.
Итак, с места в карьер результат:

И (обработанная) часть конфига, которым удалость достигнуть видимого результата:
autoload colors colors autoload -Uz vcs_info # set some colors for COLOR in RED GREEN YELLOW WHITE BLACK CYAN; do eval PR_$COLOR='%{$fg[${(L)COLOR}]%}' eval PR_BRIGHT_$COLOR='%{$fg_bold[${(L)COLOR}]%}' done PR_RESET="%{${reset_color}%}"; # set formats # %b - branchname # %u - unstagedstr (see below) # %c - stangedstr (see below) # %a - action (e.g. rebase-i) # %R - repository path # %S - path in the repository FMT_BRANCH="${PR_GREEN}%b%u:%c${PR_RESET}" # e.g. master¹² FMT_ACTION="(${PR_CYAN}%a${PR_RESET}%)" # e.g. (rebase-i) FMT_PATH="%R${PR_YELLOW}/%S" # e.g. ~/repo/subdir function precmd { vcs_info 'prompt' } function rprompt { local brackets=$1 local color1=$2 local color2=$3 local bracket_open="${color1}${brackets[1]}${PR_RESET}" local bracket_close="${color1}${brackets[2]}" local git='$vcs_info_msg_0_' local cwd="${color2}%B%1~%b" RPROMPT="${PR_RESET}${bracket_open}${git}${cwd}${bracket_close}%# ${PR_RESET}" } function lprompt { local brackets=$1 local color1=$2 local color2=$3 local bracket_open="${color1}${brackets[1]}${PR_RESET}" local bracket_close="${color1}${brackets[2]}${PR_RESET}" local colon="${color1}:" local at="${PR_BRIGHT_GREEN}@${PR_RESET}" local user_host="${PR_YELLOW}%n${at}${PR_YELLOW}%m" local vcs_cwd='${${vcs_info_msg_1_%%.}/$HOME/~}' local cwd="${color2}%B%20<..<${vcs_cwd}%<<%b" local inner="${user_host}${colon}${cwd}" PROMPT="${PR_RESET}${bracket_open}${inner}${bracket_close}${PR_RESET}$ " } lprompt '[]' $BR_BRIGHT_BLACK $PR_WHITE rprompt '()' $BR_BRIGHT_BLACK $PR_WHITE
Изменения по сравнению с оригинальным "рецептом" из упомянутой статьи - изменены "стороны" показа директории и бранча; мне показалось, что будет логичней, если бранч будет "появляться" справа, а директория и остальная стандартная инфа - болтаться привычно слева. Ну и цвета сделал чуть более выделяющимися, да кое-где поставил делимитеров. Детальные описания всего этого священнодействия можно поглядеть всё в той же статье - не вижу смысла его сюда копипастить.
Если кому-то может пригодиться, мой полный конфиг zsh можно забрать тут.
0 комментария(ев):
Отправить комментарий