search
HomeSystem TutorialLINUXFish Shell 4.0 Beta Released: Major Rewrite In Rust With Key Improvements

Fish Shell 4.0 Beta Release: Rust Rewrite brings Major Improvements

The highly acclaimed Fish shell has just released a new beta version—4.0! This is a major change, because this is the first version after its major rewrite. Fish shell was originally written in C, but now it is written in Rust. This means that the core code of the shell has been completely changed.

The first beta version of Fish shell 4.0 brings many changes, no matter how big or small. Here are some highlights:

  • Improved key binding: Fish now supports more key combinations to make it easier to use.
  • Better automatic suggestions: Fish can now provide better command suggestions to make it work faster.
  • Enhanced scripting features: A series of improvements will make writing Fish scripts easier.
  • Better Terminal Support: Fish now supports a wider range of terminals, making it more flexible.

Catalog

  • Major improvements to Fish Shell 4.0 Beta
  • Download Fish 4.0b1 Beta

Why did Fish Shell choose Rust?

The developers of Fish shell chose Rust as their target language for rewriting, mainly based on the following key reasons:

Rust is a system programming language with a wide platform support for , a huge and active community, and is likely to remain important in the future. This is a key consideration because developers want to ensure long-term sustainability of projects. Developers also believe that Rust's Security and reliability

features will help prevent errors and make the shell more stable. This is especially important because the shell is used to control computers and errors can have serious consequences.

More importantly, Rust's unique advantages in thread safety

functionality provide solutions to the challenge of enabling concurrency mode in Fish shell. This is a long-standing goal for developers, but it is difficult to achieve safely in C.

Finally, the developer considered other languages, but ultimately thought Rust was the best fit

.

They ruled out Java, Python, and other scripting languages ​​because of concerns about startup latency and memory usage.

Go language is considered inappropriate due to its handling of fork system calls.

Other system programming languages, such as D, Nim, and Zig, are considered too niche, meaning they contribute fewer and have a higher risk of becoming irrelevant in the future.

Major improvements to Fish Shell 4.0 Beta

This beta version of Fish shell (4.0b1) includes

rewrite core code from C to Rust

. It provides some significant improvements and fixes:

First of all, Fish now requests XTerm's modifiedOtherKeys keyboard encoding and progressive enhancements to the kitty keyboard protocol, which may allow for more key combinations to be bound, depending on terminal support.

In addition, bind now supports human-readable syntax. Fish can now also be built as a self-install binary.

Secondly, many improvements have been made to scripting and interactive use. For example, pressing ctrl-c during command entry will only clear the command line, rather than printing ^C and a new prompt.

Binding can now also be mixed with special input functions and shell commands. ctrl-r History Search now uses glob syntax and only operates on line or command replacements at the cursor, making it easier to combine commands in history. The abbreviation can now be limited to specific commands.

Thirdly, there are many interactive improvements, including the undo history no longer being truncated after each command, and ctrl-v now removes the ASCII control characters from the pasted text.

There are also some new or improved bindings, including alt-o for opening the current command in the editor, and shift-delete for deleting the current search and moving to the next older item during the up arrow history search.

There are also some improvements in completion, such as command-specific tab completion now provides the result of the first character as a period, and option completion now uses fuzzy subsequence filtering.

Finally, this release includes improved terminal support, including Fish now marks prompts and command output areas (via OSC 133) to enable terminal shell integration and unconditionally report working directories (via OSC 7).

This is just a brief overview of many changes in this release. You can find more detailed information in the release notes on GitHub.

Download Fish 4.0b1 Beta

This beta version is a major advancement in Fish. It’s exciting to see the future of this popular shell! If you want to give it a try, you can download it from the Fish release page on GitHub.

Please note that this is a beta version, so there may be some errors. If you are using Fish for important work, it is best to wait for the final release.

But if you like to try new things and help with testing, keep trying! You can report any issues you find on the Fish GitHub page.

Fish Shell 4.0 Beta Released: Major Rewrite In Rust With Key Improvements

The above is the detailed content of Fish Shell 4.0 Beta Released: Major Rewrite In Rust With Key Improvements. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How does performance differ between Linux and Windows for various tasks?How does performance differ between Linux and Windows for various tasks?May 14, 2025 am 12:03 AM

Linux performs well in servers and development environments, while Windows performs better in desktop and gaming. 1) Linux's file system performs well when dealing with large numbers of small files. 2) Linux performs excellently in high concurrency and high throughput network scenarios. 3) Linux memory management has more advantages in server environments. 4) Linux is efficient when executing command line and script tasks, while Windows performs better on graphical interfaces and multimedia applications.

How to Create GUI Applications In Linux Using PyGObjectHow to Create GUI Applications In Linux Using PyGObjectMay 13, 2025 am 11:09 AM

Creating graphical user interface (GUI) applications is a fantastic way to bring your ideas to life and make your programs more user-friendly. PyGObject is a Python library that allows developers to create GUI applications on Linux desktops using the

How to Install LAMP Stack with PhpMyAdmin in Arch LinuxHow to Install LAMP Stack with PhpMyAdmin in Arch LinuxMay 13, 2025 am 11:01 AM

Arch Linux provides a flexible cutting-edge system environment and is a powerfully suited solution for developing web applications on small non-critical systems because is a completely open source and provides the latest up-to-date releases on kernel

How to Install LEMP (Nginx, PHP, MariaDB) on Arch LinuxHow to Install LEMP (Nginx, PHP, MariaDB) on Arch LinuxMay 13, 2025 am 10:43 AM

Due to its Rolling Release model which embraces cutting-edge software Arch Linux was not designed and developed to run as a server to provide reliable network services because it requires extra time for maintenance, constant upgrades, and sensible fi

12 Must-Have Linux Console [Terminal] File Managers12 Must-Have Linux Console [Terminal] File ManagersMay 13, 2025 am 10:14 AM

Linux console file managers can be very helpful in day-to-day tasks, when managing files on a local machine, or when connected to a remote one. The visual console representation of the directory helps us quickly perform file/folder operations and sav

qBittorrent: A Powerful Open-Source BitTorrent ClientqBittorrent: A Powerful Open-Source BitTorrent ClientMay 13, 2025 am 10:12 AM

qBittorrent is a popular open-source BitTorrent client that allows users to download and share files over the internet. The latest version, qBittorrent 5.0, was released recently and comes packed with new features and improvements. This article will

Setup Nginx Virtual Hosts, phpMyAdmin, and SSL on Arch LinuxSetup Nginx Virtual Hosts, phpMyAdmin, and SSL on Arch LinuxMay 13, 2025 am 10:03 AM

The previous Arch Linux LEMP article just covered basic stuff, from installing network services (Nginx, PHP, MySQL, and PhpMyAdmin) and configuring minimal security required for MySQL server and PhpMyadmin. This topic is strictly related to the forme

Zenity: Building GTK  Dialogs in Shell ScriptsZenity: Building GTK Dialogs in Shell ScriptsMay 13, 2025 am 09:38 AM

Zenity is a tool that allows you to create graphical dialog boxes in Linux using the command line. It uses GTK , a toolkit for creating graphical user interfaces (GUIs), making it easy to add visual elements to your scripts. Zenity can be extremely u

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.