prompt


ramok аватар

Информация о 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! Ж:-)

0
Ваша оценка: Ничего

zsh + mc

Давно читаю советы с этого сайта за что всем спасибо.
Вроде нигде такой совет не проскакивал, в общем мой совет:

В zsh я пользуюсь темой приветствия adam2
на днях решил её поправить чтобы показывала не только директорию и пользователя с именем машины но и кое что ещё
но не это важно, а то что за одно я решил избавиться от старого глюка связанного с этой темой,
а именно с проблемой потери размера консоли

.-(~)---------------------------------------------------------------------------------------------------------(denis@tentorium)-
`-->      
.-(~)---------------------------------------------------------------------------------------------------------(denis@tentorium)-
`--> `-->  
.-(/var/cache/dictionaries-common)----------------------------------------------------------------------------------------------
-----------(denis@tentorium)-
`-->

т.е. после запуска mc и перехода в /var/cache/dictionaries у нас приглашение съехало.

0
Ваша оценка: Ничего