Mise en place de zsh et d'un dossier .dotfiles
Introduction
Qu'est-ce que c'est que zsh ?
Il s'agit (comme nous indique aimablement sa page Wikipédia) d'un shell unix. En gros, il s'agit d'un remplaçant potentiel pour votre vénérable interpréteur bash.
Mais pourquoi se casser le beignet à installer zsh, alors que j'ai déjà bash ?
zsh a plusieurs atouts sur bash :
- Une autocomplétion avancée (incluant une correction orthographique).
- Un historique partagé entre les différents shells.
- Et surtout, le support de plugins permettant une personnalisation TRÈS agréable de son outil de travail.
![](https://i0.wp.com/bioinfo-fr.net/wp-content/uploads/2017/05/bashvszsh.png?resize=1024%2C341&ssl=1)
![](https://i0.wp.com/bioinfo-fr.net/wp-content/uploads/2017/05/completion.png?resize=1024%2C576&ssl=1)
Et du coup, c'est quoi le rapport avec un dossier .dotfiles ?
Hé bien, tant qu'à tripatouiller son interpréteur, autant en profiter pour constituer un dossier .dotfiles, c'est-à-dire un dossier contenant vos différents fichiers de configuration. Ensuite, ce dossier est mis sur votre gestionnaire de version favori, et il n'y a plus qu'à le mettre sur vos différentes stations de travail. C'est très utile quand on apprécie utiliser le même environnement de travail partout.
L'objectif de cet article est de vous présenter rapidement comment installer zsh, le configurer, et sauvegarder votre configuration dans un .dotfiles.
Installation de zsh
Mise en place
Après l'installation du paquet zsh, l'interpréteur est installé, mais il n'est pas utilisé par défaut par le système. Vous pouvez cependant l'utiliser en tapant la commande zsh dans votre shell, si vous souhaitez tester votre configuration avant d'en faire votre shell par défaut.
Pour faire de zsh votre interpréteur par défaut, il faut utiliser cette commande, puis relancer votre session pour que cela soit pris en compte :
1 |
chsh -s /bin/zsh |
Si la commande chsh n'est pas disponible de base, c'est qu'il vous faut installer le paquet util-linux-user.
Configuration
Comme bash, zsh est configurable à partir d'un .zshrc. Si vous avez déjà un dossier .dotfiles, je vous laisse sauter directement à la partie de configuration du .zshrc, et surtout de ses plugins. Pour les autres, je vais vous montrer comment j'ai géré le mien. Attention, je ne prétends pas détenir la meilleure des méthodes !
Le dossier .dotfiles
Création du dossier
Créez un dossier .dotfiles dans votre home, et initiez un dépôt dedans (pour git, cf ici).
1 2 3 |
mkdir .dotfiles cd .dotfiles git init |
Ensuite, il ne reste plus qu'à mettre les fichiers de configuration à l'intérieur et les faire suivre par votre gestionnaire.
Création d'un Makefile
L'idée, c'est qu'une fois que votre dossier est fait, vous n'ayez que le minimum à faire pour maintenir votre configuration à jour. Pour cela, le plus intéressant que je connaisse reste de créer un Makefile, qui contiendra toutes les commandes nécessaires.
Voici un exemple avec le mien, qui gère les 4 fichiers de configuration de mon dossier :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
all : pull source source : cp ~/.dotfiles/.aliases ~/.aliases cp ~/.dotfiles/.zshrc ~/.zshrc cp ~/.dotfiles/.bashrc ~/.bashrc cp ~/.dotfiles/.bash_profile ~/.bash_profile pull : git pull antigen : git clone https ://github.com/zsh-users/antigen.git install : antigen source |
Ainsi, make va successivement mettre à jour le dépôt, puis sourcer les fichiers de configuration. Le make install est présent uniquement pour l'installation du dépôt sur vos autres machines, en permettant l'ajout du gestionnaire de plugin de zsh (détails dans la partie sur Antigen) avant de copier les fichiers de configuration.
Les plus attentifs d'entre vous auront remarqué qu'au lieu de créer des liens symboliques, je copie les fichiers de configuration. En fait, il m'est arrivé que les liens symboliques ne marchent pas, et j'ai préféré pallier ce soucis en copiant directement les fichiers. C'est moins propre et occupe un peu plus de place, mais bon, j'assume, tout le monde à le droit à son coté sombre et déviant !
La configuration de zsh
Le zshrc
Comme exemple, voici mon dossier .dotfiles, vous pouvez jeter un œil à mon .zshrc si vous le souhaitez.
Les alias : si ce n'est pas déjà fait, je vous conseille de mettre vos alias dans un fichier .aliases, et de pointer vers ce fichier grâce à cette commande dans votre .zshrc :
1 |
source ~/.aliases |
En dehors de ça, la grande force de zsh, c'est sa customisation via des plugins. Cela est possible grâce à 2 outils.
Antigen
Antigen est le gestionnaire de plugins pour zsh, l'équivalent de Vundle ou Plug pour Vim et Neovim.
Pour utiliser Antigen, il faut copier le dépôt (dans le cadre de cet article, dans votre .dotfiles, sinon, où vous voulez) :
1 |
git clone https ://github.com/zsh-users/antigen.git |
Antigen peut être mis à jour avec cette commande :
1 |
antigen selfupdate |
Pour mettre à jour les plugins :
1 |
antigen update |
Oh-my-zsh
Seul, Antigen ne fait pas grand chose. C'est là qu'intervient oh-my-zsh, un dépôt pour gérer votre configuration. Cela contient un peu de tout, depuis des thèmes, jusqu'à des plugins faisant dire des "Chuck Norris Facts" à une vache ! Il existe d'autres dépôts, comme prezto, mais je n'ai pas encore eu l'occasion de comparer.
![](https://i0.wp.com/bioinfo-fr.net/wp-content/uploads/2017/05/chuck.png?resize=434%2C445&ssl=1)
Pour l'installer, c'est très simple, Antigen le fait pour vous. Idem pour l'installation des plugins, et leur mise à jour !
Pour cela, rien de plus simple, rendez vous dans votre .zshrc, et écrivez :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
autoload antigen # Source vers Antigen source ~/.dotfiles/antigen/antigen.zsh # Installation de oh-my-zsh antigen use oh-my-zsh # différents plugins # support de git antigen bundle arialdomartini/oh-my-git antigen bundle git # coloration syntaxique dans le shell antigen bundle zsh-users/zsh-syntax-highlighting # theme antigen theme ys antigen apply |
Il ne vous restera plus qu'à chercher les plugins qui vous paraissent les plus intéressants, le thème de vos rêves, et faire des liens ou copier les fichiers de configuration dans votre /home !
Merci aux relecteurs : eorn, Nico M., et Nisaea
Laisser un commentaire