Git
Chapters ▾ 2nd Edition

A1.5 Appendix A: Git в інших середовищах - Git у Zsh

Git у Zsh

Zsh також постачає бібліотеку доповнювання для Git. Щоб скористатися нею, просто виконайте autoload -Uz compinit && compinit зі свого .zshrc. Інтерфейс Zsh трохи функціональніший за той, що в Bash:

$ git che<tab>
check-attr        -- display gitattributes information (відобразити інформацію gitattributes)
check-ref-format  -- ensure that a reference name is well formed (переконатись, що ім’я посилання правильне)
checkout          -- checkout branch or paths to working tree (отримати гілку чи шляхи до робочого дерева)
checkout-index    -- copy files from index to working directory (скопіювати файли з індексу до робочої директорії)
cherry            -- find commits not merged upstream (знайти коміти, які не злиті до першоджерела)
cherry-pick       -- apply changes introduced by some existing commits (застосувати зміни, запроваджені існуючими комітами)

Неоднозначні доповнення не просто надаються списком; вони мають корисні описи, та ви можете графічно переміщуватись списком, якщо повторно натискатимете tab. Це працює з командами Git, їхніми аргументами, та іменами речей всередині репозиторія (на кшталт посилань чи віддалених сховищ), а також назв файлів та всіх речей, які Zsh знає як доповнювати.

Zsh встановлюється з системою отримання інформації з систем керування версіями під назвою vcs_info. Щоб включити назву гілки з правого боку запиту команд, додайте такі рядки до свого файлу ~/.zshrc:

autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
RPROMPT=\$vcs_info_msg_0_
# PROMPT=\$vcs_info_msg_0_'%# '
zstyle ':vcs_info:git:*' formats '%b'

Це призводить до відображення поточної гілки з правого боку вікна терміналу, коли ваша оболонка знаходиться всередині репозиторія Git. (Авжеж правий бік також підтримується; просто розкоментуйте присвоєння PROMPT.) Виглядає він схоже на наступне:

Налаштований запит `zsh`.
Figure 162. Налаштований запит zsh.

Задля докладнішої інформації про vcs_info, зверніться до його документації в довідці zshcontrib(1) або онлайн за адресою http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Version-Control-Information.

Instead of vcs_info, you might prefer the prompt customization script that ships with Git, called git-prompt.sh; see https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh for details. git-prompt.sh is compatible with both Bash and Zsh.

Zsh настільки могутній, що існують цілі фреймворки, присвячені його поліпшенню. Один з них називається "oh-my-zsh", та його можна знайти за адресою https://github.com/robbyrussell/oh-my-zsh. Система додатків oh-my-zsh має потужне доповнення git, а також має різноманітні "теми" запитів, багато з яких відображають дані керування версіями. Приклад теми oh-my-zsh. — це лише один з прикладів того, що може бути зроблено в цій системі.

Приклад теми oh-my-zsh.
Figure 163. Приклад теми oh-my-zsh.