
fish 4.8 released with improved history search, better completion & scripting enhancements
fish 4.8 has been released as the latest version of this user-friendly command line shell with syntax highlighting, autosuggestions, and tab completion. This update introduces a notable update for translation workflows with Fluent replacing GNU gettext for translatable messages in Rust-based code. To ease this transition, new tooling inspired by the fluent-ftl-tools library is included. These changes streamline how message translations are managed in both core code and contributed scripts.
Addressing key stability concerns, this release fixes a flaw where history search would lose track of commands after being re-executed in parallel shell sessions. Users will also see prompt improvements, as the fish_git_prompt, fish_hg_prompt, and fish_fossil_prompt now discard control characters from version control system state data read from disk, aligning with prompt_pwd behavior.
Following these backend changes, the cd command now offers -L and -P options found in other POSIX shells, letting users specify how symbolic links are resolved. If the working directory is moved, cd with a relative path now attempts to recover using the real current directory. Abbreviation expansion with --position=anywhere is now available within argument positions, and option completions properly support the --condition flag.
Additional refinements include control character skipping with Ctrl-W, more consistent brace expansion, improved cancellation with Ctrl-C, a bind command showing source files for bindings, and the removal of the __fish_initialized variable at startup.
