Git
Chapters ▾ 2nd Edition

A1.5 Appendix A: Το Git σε άλλα περιβάλλοντα - Το Git στο Zsh

Το Git στο Zsh

Το Git περιέχει επίσης με μια βιβλιοθήκη συμπλήρωσης με tab για το Zsh. Απλά αντιγράφουμε το contrib/completion/git-completion.zsh στον αρχικό μας κατάλογο και το περνάμε από την source μέσα από το αρχείο μας .zshrc. Το περιβάλλον του Zsh είναι λίγο πιο ισχυρό από αυτό του 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

Οι αμφισβητούμενες συμπληρώσεις με tab δεν αναφέρονται απλά· έχουν χρήσιμες περιγραφές και μπορούμε να πλοηγηθούμε γραφικά στη λίστα πατώντας επανειλημμένα την καρτέλα. Αυτό λειτουργεί με εντολές Git, τα ορίσματά τους και τα ονόματα άλλων πραγμάτων μέσα στο αποθετήριο (όπως refs και απομακρυσμένα αποθετήρια), καθώς και τα ονόματα αρχείων και όλα τα άλλα πράγματα, τα οποία γνωρίζει το Zsh πώς να τα συμπληρώσει με tab.

Το Zsh συμβαίνει να είναι αρκετά συμβατό με το Bash όταν πρόκειται για την εξατομίκευση της προτροπής, αλλά μας επιτρέπει να έχουμε και μια προτροπή από τα δεξιά. Για να συμπεριλάβουμε το όνομα του κλάδου στη δεξιά πλευρά, προσθέοτυμε αυτές τις γραμμές στο αρχείο ~/.zshrc:

setopt prompt_subst
. ~/git-prompt.sh
export RPROMPT=$'$(__git_ps1 "%s")'

Αυτό έχει ως αποτέλεσμα την εμφάνιση του τρέχοντος κλάδου στη δεξιά πλευρά του παραθύρου του τερματικού, όποτε το κέλυφος μας βρίσκεται μέσα σε ένα αποθετήριο Git. Μοιάζει λίγο σαν αυτό:

Εξατομικευμένη προτροπή στο `zsh`.
Figure 162. Εξατομικευμένη προτροπή στο zsh.

Το Zsh είναι αρκετά ισχυρό ώστε να υπάρχουν ολόκληρα πλαίσια που είναι αφιερωμένα στο να το καταστήσουν καλύτερο. Ένα από αυτά ονομάζεται oh-my-zsh και διατίθεται στη διεύθυνση https://github.com/robbyrussell/oh-my-zsh. Το σύστημα προσθήκης του oh-my-zsh έρχεται με ισχυρή συμπλήρωση με tab για το git και έχει μια ποικιλία από “θέματα”, πολλά από τα οποία εμφανίζουν δεδομένα ελέγχου έκδοσης. Η εικόνα Ένα παράδειγμα ενός θέματος oh-my-zsh. είναι μόνο ένα παράδειγμα του τι μπορεί να γίνει με αυτό το σύστημα.

Ένα παράδειγμα ενός θέματος `oh-my-zsh`.
Figure 163. Ένα παράδειγμα ενός θέματος oh-my-zsh.