Информация о VCS (Version Control Systems) в приглашении zsh


ramok аватар

ramok - Posted on 21 Август 2009

При переходе на 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.png22 кб
0
Ваша оценка: Ничего

$ 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-символы вроде '&#10
0. можно где-то увидеть, как эта строка выглядит в plain-тексте?
1. буду очень признателен хотя бы за самые общие пояснения, что именно где в ней за что отвечает.

думаю стоит обновится. у меня вот.

$ zsh --version
zsh 4.3.10 (i686-pc-linux-gnu)
$ vcs_info_printsys
## list of supported version control backends:
## disabled systems are prefixed by a hash sign (#)
#bzr
#cdv
cvs
#darcs
git
#hg
#mtn
#p4
svk
svn
#tla
## flavours (cannot be used in the enable or disable styles; they
## are enabled and disabled with their master [git-svn -> git])
## they *can* be used contexts: ':vcs_info:git-svn:*'.
git-p4
git-svn

Цитата:

zstyle ':vcs_info:*' actionformats '%F{5}(%f%s%...

спасибо, подправил в статье формат. Пришлось после '[' поставить пробел, иначе воспринимается как BBCode Tag.

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.

Смотрите также