Информация о VCS (Version Control Systems) в приглашении zsh
При переходе на git пришла в голову мысль что было бы удобно видеть в приглашении zsh в каком состоянии локальный репозиторий.
Всевозможные rebase, am, merge и подобное сбивает с толку.
Сказано - сделано. Написал собственный велосипед. Потом нашел еще парочку велосипедов в интернете, разобрал на запчасти и прикрутил к своему велосипеду новенькие колеса и смазал педали. Но вскоре, к своему стыду, в мане zsh увидел уже готовый даже не велосипед, а целый танк с экипажем. И собакой в придачу.
Вот он
$ PAGER=less LESS='-p VERSION CONTROL SYSTEMS' man zshallТворчески переосмыслив пример из мана вот что получилось
autoload -Uz vcs_info # включаем только git svn svk cvs. Возможные VCS можно посмотреть командой vcs_info_printsys zstyle ':vcs_info:*' enable git svn svk cvs # домашняя директория из CVS репозитория. Исключаем ее и некоторые директории из домашнего репозитория zstyle ':vcs_info:*' disable-patterns "$HOME(|/.*|/bin)" # Модифицированная версия из man zshcontrib, добавлены флажки staged и unstaged изменений zstyle ':vcs_info:*' actionformats '%F{5}(%f%s%F{5})%F{3}%m%F{5}[ %F{2}%b%F{3}|%F{1}%a%F{5}][ %B%F{yellow}%c%F{red}%u%%b%F{5}]%f ' zstyle ':vcs_info:*' formats '%F{5}(%f%s%F{5})%F{3}%m%F{5}[ %F{2}%b%F{5}][ %B%F{yellow}%c%F{red}%u%%b%F{5}]%f ' zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r' zstyle ':vcs_info:*' check-for-changes true zstyle ':vcs_info:*' get-revision true setopt prompt_subst RPROMPT=$'${vcs_info_msg_0_}%b%F{cyan}%T%f' # в zsh >= 4.3.11 можно add-zsh-hook precmd vcs_info precmd () { vcs_info }
Ну и как всегда: Live demo! Ж:-)

А свой велосипед я показывать не буду. Пусть ржавеет, там ему и место.
| Вложение | Размер |
|---|---|
| zsh-vcs-info-in-prompt.png | 22 кб |
- 3080 просмотров
Страница для печати


$ PAGER=less LESS='-p VERSION CONTROL SYSTEMS' man zshall Pattern not found (press RETURN):-( может чего-то не хватает? В каком именно разделе zshall находится документация по vcs'ам?
$ zsh --version zsh 4.3.6 (i686-pc-linux-gnu)>Возможные VCS можно посмотреть командой vcs_info_printsys
Какую именно команду нужно ввести для этого в терминале?
$ vcs_info_printsys zsh: command not found: vcs_info_printsysпо поводу последней строки:
zstyle ':vcs_info:*' actionformats '%F{5}(%f%s%...далее следует адская каша, содержащая местами, как я понимаю, некорретно интерпретируемые utf-символы вроде '

0. можно где-то увидеть, как эта строка выглядит в plain-тексте?
1. буду очень признателен хотя бы за самые общие пояснения, что именно где в ней за что отвечает.
думаю стоит обновится. у меня вот.
спасибо, подправил в статье формат. Пришлось после '[' поставить пробел, иначе воспринимается как BBCode Tag.
Отправить комментарий