Fish Shell 4.5 Fixes Vi Mode Regressions and Improves History Search

Fish Shell 4.5 resolves Vi mode regressions from 4.4 and fixes history search behavior, including correct cursor positioning with wide characters.

Fish, a popular, user-friendly command-line shell, has announced version 4.5, a maintenance update that builds on the 4.0 series.

The most visible fixes address several Vi mode issues reported after the 4.4 release. The d,f key binding, which had stopped working, has been restored. A bug where the c,w binding incorrectly deleted trailing spaces has been corrected.

A crash triggered by c,i,w after accepting an autosuggestion has also been resolved. Calling fish_vi_key_bindings with a mode argument no longer results in an error.

Moreover, pressing Ctrl-L no longer cancels history search, restoring expected workflow behavior. Cursor positioning during history search now works correctly with characters of any width, improving usability in terminals using wide glyphs.

Beyond regression fixes, Fish 4.5 finalizes an architectural change that began in earlier releases. The shell no longer reads the terminfo database to adjust behavior based on the TERM environment variable and no longer depends on ncurses or terminfo.

The ignore-terminfo feature flag, introduced and enabled by default in version 4.1, is now permanently enabled. As a result, Fish Shell may not function correctly on legacy terminals such as the Data General Dasher D220 and Wyse WY-350, but it is expected to work on all modern terminal emulators.

Finally, the release also restores build support on Illumos, fixing an issue present since the 4.0 series.

For more information, see the changelog.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Leave a Reply

Your email address will not be published. Required fields are marked *