Fish Shell 4 est ici entièrement réécrit en rouille
Fish Shell 4 est là, entièrement réécrit en Rust avec des raccourcis clavier améliorés, des versions auto-installables, un meilleur contrôle de l’historique, et plus encore.
Le très apprécié projet Fish Shell vient de dévoiler Fish 4, une mise à jour importante introduisant des améliorations majeures en coulisses et de nouvelles fonctionnalités destinées aux utilisateurs.
Sans plus attendre, voici la star du spectacle : Rust ! Oui, c’est vrai : Fish 4 a été entièrement réécrit en Rust. Cependant, du point de vue de l’utilisateur quotidien, la transition doit rester pratiquement invisible : les commandes, les paramètres et les interactions typiques sont censés rester inchangés.
Pour ce que vous remarquerez, Fish a introduit un système de notation de liaison mis à jour et une compatibilité terminale plus profonde. Vous pouvez désormais remplacer les séquences opaques par des commandes plus conviviales et intuitives telles que bind ctrl-right
. Grâce à « modifyOtherKey » et au protocole du clavier Kitty, Fish peut distinguer des séquences de contrôle qui semblaient auparavant identiques.
Un autre point fort de Fish 4 est l’intégration plus étroite avec les capacités du terminal. Par exemple, Fish utilise désormais automatiquement des séquences OSC 133 pour les invites et la sortie de commandes, favorisant une synchronisation plus fluide avec divers terminaux qui reposaient autrefois sur des scripts complémentaires d’intégration de shell.
De plus, Fish 4 standardise les changements de curseur en mode vi sur la plupart des terminaux, ne s’appuyant plus sur une détection spécifique à l’environnement, qui est souvent insuffisante.
Notamment, l’interpréteur de commandes gère désormais les longues lignes de commande plus gracieusement, en les défilant au lieu de les rendre de manière erronée. De plus, toutes les modifications déclenchées par les liaisons de ligne de commande sont immédiatement visibles, ce qui offre une expérience de script et une expérience interactive plus intuitives.
En parlant d’améliorations de l’utilisation interactive, le pager d’historique ctrl-r
, introduit pour la première fois dans Fish 3.6, a été affiné. Vous pouvez désormais vous appuyer sur la syntaxe glob pour filtrer plus précisément les entrées d’historique. Mieux encore, cette recherche s’applique strictement à la commande actuelle, ce qui vous permet de construire des reconstitutions d’histoire plus complexes et multilignes sans avoir à fouiller dans des scripts entiers.
Le thème par défaut a également fait l’objet d’une petite mais significative modification : les commandes apparaissent désormais dans la couleur « normale » du terminal au lieu de la couleur « bleu » quelque peu difficile à lire. Les utilisateurs existants conserveront leurs paramètres actuels, à moins qu’ils ne rechargent manuellement le thème via fish_config
.
La nouvelle fonctionnalité de construction auto-installable pourrait changer la donne pour les utilisateurs qui se connectent fréquemment à des serveurs sans privilèges d’administration. Après avoir compilé Fish, vous pouvez exécuter un seul fichier binaire autonome qui extrait directement tout ce qui est nécessaire (fonctions, pages de manuel et même l’outil de configuration Web) dans votre répertoire personnel.
En d’autres termes, il est plus facile que jamais d’exécuter Fish dans des environnements où un gestionnaire de paquets n’est pas disponible (ou où vous n’avez pas l’autorisation de l’utiliser). Des versions prédéfinies sont disponibles pour les principales plates-formes telles que x86_64 et aarch64 Linux sur la page GitHub Releases du projet. D’autres plates-formes sont également prises en charge, mais vous devrez peut-être compiler vos propres builds.
Une autre fonctionnalité demandée depuis longtemps, la possibilité d’exclure certaines commandes de l’historique, est enfin là. En définissant une fonction personnalisée appelée fish_should_add_to_history
, vous pouvez décider exactement quelles commandes sont conservées. Toute commande signalée pour exclusion reste à un endroit temporaire, vous pouvez donc toujours appuyer sur la flèche vers le haut pour la répéter immédiatement, mais une fois que vous exécutez autre chose, elle est effacée.
Pour les amateurs de scripts, Fish 4 apporte de nombreuses améliorations, les principales étant :
String Match
prend désormais en charge l’option--max-matches
, ce qui vous permet de limiter le nombre de correspondances traitées.Les boucles for
ne se souviennent plus des variables locales de l’itération précédente.set
gagne une option--no-event
pour supprimer les événements de changement de variable (particulièrement utile dans les gestionnaires d’événements).Le temps
commence à mesurer plus tôt, en capturant la durée de toutes les substitutions de commande qui se produisent avant l’exécution d’une commande.complete --erase
désactive complètement le chargement automatique des commandes spécifiées, en s’alignant sur lesfonctions --erase
.
Pour plus d’informations sur toutes les nouveautés de Fish Shell 4, consultez l’annonce de sortie.