Oui un shell peut changer une vie, oui zsh a changé ma vie. Bon d'accord, j'exagère un tout petit peu.

Au départ, je me suis mis à l'utiliser, au détriment de bash ou tcsh (shell par défaut à l'école), pour sa complétion assez agréable.

Il y a quelques jours, on m'a fait découvrir quelques fonctionnalités très intéressantes que je ne peux m'empêcher de vous partager.

(Ces exemples de configuration sont à placer dans votre .zshrc)
Tout d'abord, très basique, une fonctionnalité avancée de la complétion, comment ne lister que les répertoires lors d'un cd :
compctl -g '*(-/) .*(-/)' cd

Un peu plus intéressant, la colorisation de la liste des choix possibles lors de la complétion :
zmodload zsh/complist
ZLS_COLORS=$LS_COLORS

Un peu plus surprenant, la complétion par des paramètres définis sur une certaine commande. Je m'explique.
Par exemple vous êtes sur un réseau local avec de nombreuses machines avec chacune un nom attribuée. Vous voulez y connecter régulièrement en ssh. Ne serait-il pas intéressant que lorsque vous tapez $ssh [TAB], il vous propose la liste des machines disponibles ? zsh le fait comme ceci :
machine=(machine1 machine2 machine3 machine4 machine 5)
compctl -k machine ssh

Bien sûr, c'est à adapter à vos besoins; dans compctl il suffit d'abord de mettre le nom de la variable qui contient les choix possibles, suivit de la liste des commandes sur lesquels cela va agir.

Peut-être qu'on pourra retrouver ces mêmes fonctionnalités dans d'autres shells, mais en tout cas elles y sont ici.
Évidemment, ceci représente qu'une infime partie des possibilités de ce shell. Je n'ai pas fini d'avoir des surprises.