ZSH, aussi appelé coque Z, est une version étendue de Bourne Shell (sh), avec de nombreuses nouvelles fonctionnalités et prise en charge des plugins et des thèmes. Puisqu'il est basé sur le même shell que Bash, ZSH a beaucoup des mêmes fonctionnalités, et le changement est très facile.
Ensuite, Pourquoi l'utiliser?
ZSH a trop de fonctions à lister ici, quelques améliorations mineures à bash, mais ce sont quelques-uns des principaux:
- CD automatique: Tapez simplement le nom du répertoire
- Extension de chemin récursif: Par exemple, “/ vous / ce / b” s’étend à “/ usr / local / poubelle”
- Vérification orthographique et complétion approximative: Si vous faites une petite erreur lors de la saisie d'un nom de répertoire, ZSH le réparera pour vous
- Prise en charge des plugins et des thèmes: ZSH comprend de nombreux frameworks de plugins différents
La compatibilité avec les plugins et les thèmes est probablement la fonctionnalité la plus intéressante de ZSH et c'est ce sur quoi nous allons nous concentrer ici.
Installation de ZSH
Si vous êtes sous macOS et avez Bière maison installée (Qu'est-ce que doit), vous pouvez installer ZSH avec une seule commande:
brasser installer zsh
Aussi pour les utilisateurs de macOS, vous devriez probablement utiliser iTerm au lieu du terminal natif, car il a une bien meilleure compatibilité des couleurs (en même temps de nombreuses autres fonctionnalités).
Si vous êtes sous Linux, les commandes peuvent varier selon la distribution, mais il devrait s'agir d'un package par défaut dans votre gestionnaire de packages. Tu peux vérifier ce guide si vous avez des problèmes.
Si c'est sous Windows, vous n'avez peut-être même pas Bash en premier lieu. Vous pouvez suivre ce guide pour le configurer et activer ZSH.
Installation Oh-My-Zsh
Oh-mi-Zsh est le framework de plugin le plus populaire pour ZSH, et il est également livré avec de nombreux plugins et thèmes intégrés. De plus, il existe quelques autres frameworks de plugins, comprenant Antigène, qui est un gestionnaire de paquets complet pour ZSH, mais Oh-My-Zsh a beaucoup de plugins intégrés et fait bien son travail.
Oh-My-Zsh a un script d'installation simple que vous pouvez exécuter:
sh-c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
De là, vous pouvez activer et désactiver les plugins en les ajoutant à votre fichier .zshrc, situé dans votre répertoire ~.
Vous pouvez obtenir une liste complète des plugins dans le Dépôt Oh-My-Zsh.
Les sujets
Il y a beaucoup de sujets pour tout le monde, mais niveau de puissance9k il est, avec beaucoup, le plus cool. Ajouter une boîte d'informations alignée à droite, intégration avec git et historique des commandes, personnalisation incroyable et enveloppe le tout dans une interface élégante basée sur le Ligne électrique complément à vi.
Vous voudrez utiliser iTerm sur macOS, ou n'importe quel terminal avec la couleur de 24 morceaux, pour tirer le meilleur parti de powerlevel9k (ou n'importe quel thème ZSH, en réalité).
Pour configurer powerlevel9k (si instaló Oh-My-Zsh) il suffit de cloner le référentiel dans le dossier des thèmes personnalisés .oh-my-zsh:
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
Vous devez donc l'activer dans .zshrc:
ZSH_THEME="powerlevel9k/powerlevel9k"
Après cela, obtenez votre .zshrc, et vous devriez voir les changements appliqués.
Si vous le souhaitez, vous pouvez personnaliser le drapeau par défaut en définissant POWERLEVEL9K_LEFT_PROMPT_ELEMENTS dans votre .zshrc. Voici le mien, avec un préavis minimal:
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs dir rbenv) POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(root_indicator background_jobs statut charge)
Vous pouvez trouver le documentation complète pour powerlevel9k dans le référentiel.
setTimeout(fonction(){
!fonction(F,b,e,v,m,t,s)
{si(f.fbq)revenir;n=f.fbq=fonction(){n.callMethod?
n.callMethod.apply(m,arguments):n.queue.push(arguments)};
si(!f._fbq)f._fbq=n;n.push=n;n.chargé=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertAvant(t,s) } (window, document,'scénario',
'https://connect.facebook.net/en_US/fbevents.js’);
fbq('init', « 335401813750447 »);
fbq('Piste', « Page View »);
},3000);