Fish Shell 4.7 Brings Completion, History, and UI Fixes

Fish Shell 4.7 improves completions, history handling, prompt behavior, and interactive shell reliability.

Fish 4.7 is now available as the latest version of the user-friendly command-line shell. A notable change affects non-interactive shells: default theme variables, including fish_color_*, are no longer set in these sessions. This reduces unnecessary environment setup when Fish is used outside standard interactive terminals.

Several interactive improvements are included as well. The prompt_pwd command now strips control characters. Repaint events no longer reset the completion pager or other temporary user interface states.

Moreover, the fish_color_valid_path variable now supports background and underline colors. Additionally, funced no longer loses work after repeated parse errors when no file changes have occurred.

This release also addresses several issues with completions. Directory completions are now sorted more predictably, and fish_update_completions has been updated to handle groff device control escapes. This resolves completion generation for man pages produced by newer versions of help2man, including those used by coreutils 9.10.

History handling has also been improved. Fish 4.7 resolves an issue in which history could become corrupted with NUL bytes when the shell received SIGTERM or SIGHUP. In addition, private mode in-memory history is no longer shared with the read builtin, ensuring better isolation.

As always, this release includes several regression fixes. These address vi mode dl behavior, backspace handling after a newline, unwanted long-option completions following short options, and a scenario where a command such as nosuchcommand || echo hello could incorrectly execute the right-hand side multiple times.

For more details, see the changelog.

Fish 4.7 is now available on the project’s GitHub release page. Standalone Linux binaries are also provided for supported CPU architectures.

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 *