Git
Chapters ▾ 2nd Edition

A1.5 Appendix A: Git em Outros Ambientes - Git no Zsh

Git no Zsh

O Zsh também é fornecido com uma biblioteca de preenchimento de tabulação para o Git. Para usá-lo, basta executar autoload -Uz compinit && compinit no teu .zshrc. A interface do Zsh é um pouco mais poderosa do que a do Bash:

$ git che<tab>
check-attr        -- display gitattributes information
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

As tabulações de tabulação ambíguas não são apenas listadas; Elas têm descrições úteis, e tu podes navegar na lista de forma gráfica ao carregar repetidamente a aba. Isto funciona com os comandos do Git, seus argumentos e nomes de coisas dentro do repositório (como refs e controles remotos), bem como nomes de arquivos e todas as outras coisas que Zsh sabem como completar as tabulações.

O Zsh é fornecido com uma estrutura para obter informações dos sistemas de controle de versão, chamado vcs_info. Para incluir o nome do ramo no prompt do lado direito, adiciona estas linhas ao arquivo ~/.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'

Isto resulta numa exibição do ramo atual no lado direito da janela do terminal, sempre que ot eu shell estiver dentro de um repositório Git. (O lado esquerdo também é suportado, é claro, basta descomentar a tarefa de PROMPT). Parece-se um pouco como isto:

Prompt do zsh personalizado.

imagem::images/zsh-prompt.png[Customized zsh prompt.]

Para mais informção no vcs_info, consulta a sua documentação na página do manual zshcontrib(1), ou online em http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Version-Control-Information.

Em vez de vcs_info, podes preferir o script de personalização do prompt que acompanha o Git, chamado git-prompt.sh; consulta https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh [] para obter os detalhes. git-prompt.sh é compatível com Bash e Zsh.

Zsh é poderoso o suficiente para que haja estruturas inteiras dedicadas a torná-lo melhor. Um deles é chamado de "oh-my-zsh", e pode ser encontrado em https://github.com/robbyrussell/oh-my-zsh. O sistema de plug-in do oh-my-zsh vem com a poderosa conclusão da aba git, e tem uma variedade de "temas" rápidos, muitos dos quais exibem dados de controle de versão. Um exemplo de um tema oh-my-zsh. é apenas um exemplo do que pode ser feito com este sistema.

Um exemplo de um tema de oh-my-zsh.
Figure 163. Um exemplo de um tema oh-my-zsh.