Recherche de site Web

Fish Shell 4.0 Beta Introdu Introduit Une Réécriture Majeure En Rust


Le populaire Fish shell vient de sortir une nouvelle version bêta - 4.0 ! C'est un grand changement car c'est la première version après une réécriture majeure. Le Fish shell était à l'origine écrit en C++, mais maintenant il est écrit en Rust. Cela signifie que le code central du shell a été complètement changé.

Cette première version bêta de Fish shell 4.0 vient avec beaucoup de changements, à la fois grands et petits. Voici quelques points forts :

  • Raccourcis clavier améliorés : Fish prend désormais en charge davantage de combinaisons de touches, ce qui le rend plus facile à utiliser.
  • Meilleures suggestions automatiques : Fish peut désormais proposer de meilleures suggestions pour les commandes, ce qui rend le travail plus rapide.
  • Script amélioré : Il y a plusieurs améliorations qui rendront plus facile l'écriture de scripts dans Fish.
  • Meilleur support du terminal : Fish fonctionne désormais mieux avec un plus large éventail de terminaux, ce qui le rend plus flexible.

Pourquoi Fish Shell a choisi Rust ?

Les développeurs du shell fish ont choisi Rust comme langage cible pour leur réécriture pour plusieurs raisons clés.

Rust est un langage de programmation système avec un large support de plateformes, une grande et active communauté, et une bonne chance de rester pertinent à l'avenir. Cela a été une considération clé puisque les développeurs voulaient garantir la durabilité à long terme du projet.

Les développeurs ont également estimé que les fonctionnalités de sécurité et de fiabilité de Rust aideraient à prévenir les erreurs et à rendre le shell plus stable. Cela était particulièrement important car un shell est utilisé pour contrôler un ordinateur et les erreurs peuvent avoir de graves conséquences.

Plus important encore, la force unique de Rust dans les fonctionnalités de sûreté des threads offre une solution au défi de l'activation du mode concurrent dans le shell fish. Cela a été un objectif de longue date des développeurs, mais il était difficile à atteindre en toute sécurité en C++.

Finalement, les développeurs ont envisagé d'autres langages mais ont finalement décidé que Rust était le mieux adapté.

Ils ont écarté des langages comme Java, Python et d'autres langages de script en raison de préoccupations concernant la latence au démarrage et l'utilisation de la mémoire.

Le langage Go était considéré comme un choix maladroit en raison de sa gestion de l'appel système fork.

D'autres langages de programmation systèmes, tels que D, Nim et Zig, étaient considérés comme trop niche, ce qui signifie qu'ils avaient moins de contributeurs et un risque plus élevé de devenir obsolètes à l'avenir.

Améliorations majeures dans Fish Shell 4.0 Beta

Cette version bêta (4.0b1) du shell Fish inclut une réécriture importante du code central de C++ à Rust. Elle offre un certain nombre d'améliorations et de corrections notables :

Tout d'abord, Fish demande maintenant le codage clavier modifyOtherKeys de XTerm et les améliorations progressives du protocole clavier de kitty, ce qui peut permettre de lier davantage de combinaisons de touches, selon le support du terminal.

De plus, bind prend désormais en charge une syntaxe lisible par l'homme. Fish peut maintenant également être construit en tant que binaire auto-installable.

Deuxièmement, il y a de nombreuses améliorations pour le scripting et l'utilisation interactive. Par exemple, ctrl-c pendant la saisie d'une commande effacera simplement la ligne de commande plutôt que d'afficher ^C et une nouvelle invite.

Les liaisons peuvent également maintenant mélanger des fonctions d'entrée spéciales et des commandes shell. La recherche dans l'historique ctrl-r utilise désormais la syntaxe glob et fonctionne uniquement sur la ligne ou la substitution de commande au niveau du curseur, ce qui facilite la combinaison de commandes de l'historique. Les abréviations peuvent désormais être limitées à des commandes spécifiques.

Troisièmement, il y a un certain nombre d'améliorations interactives, notamment le fait que l'historique des annulations n'est plus tronqué après chaque commande et que ctrl-v supprime désormais les caractères de contrôle ASCII du texte collé.

Il y a également de nouvelles liaisons ou des liaisons améliorées, y compris alt-o pour ouvrir la commande en cours dans un éditeur et shift-delete pour supprimer l'élément de recherche actuel et passer à l'élément précédent lors de la recherche dans l'historique avec la flèche vers le haut.

Il y a également un certain nombre d'améliorations de l'achèvement, telles que les complétions de tabulation spécifiques aux commandes pouvant désormais proposer des résultats dont le premier caractère est un point et l'achèvement des options utilisant désormais le filtrage flou par sous-séquence.

Enfin, cette version inclut un support amélioré du terminal, y compris le fait que Fish marque désormais les zones d'invite et de sortie des commandes (via OSC 133) pour permettre l'intégration du shell dans le terminal et rapporte le répertoire de travail (via OSC 7) de manière inconditionnelle.

Ceci est juste un bref aperçu des nombreux changements dans cette version. Vous pouvez trouver des informations plus détaillées dans les notes de version sur GitHub.

Télécharger Fish 4.0b1 Beta

Cette version bêta est un grand pas en avant pour Fish. Il est excitant de voir ce que l'avenir réserve à ce shell populaire ! Si vous voulez l'essayer, vous pouvez la télécharger depuis la page des versions de Fish sur GitHub.

Veuillez noter qu'il s'agit d'une version bêta, il pourrait donc y avoir quelques bugs. Il est conseillé d'attendre la version finale si vous utilisez Fish pour un travail important.

Mais si vous aimez essayer de nouvelles choses et aider aux tests, allez-y et essayez ! Vous pouvez signaler tout problème que vous trouvez sur la page GitHub de Fish.