github fish-shell/fish-shell 4.7.0
fish 4.7.0

10 hours ago

This release brings 198 new commits since 4.6.0, contributed by 21 authors, 12 of which are new faces.

Deprecations and removed features

  • The default theme (i.e. the fish_color_* variables) is no longer set in non-interactive shells.

Interactive improvements

  • prompt_pwd now strips control characters.
  • Repaint events (as triggered by changes to color variables or by event handlers running commandline -f repaint) no longer reset the completion pager and other transient UI states (#12683).
  • fish_color_valid_path now respects background and underline colors (#12622).
  • funced will no longer lose work if there are parse errors multiple times without new changes to the file.
  • Fixed a case where directory completions were sorted in a surprising order (#12695).
  • When at the command token, the alt-o binding will now open read-only files too (#12671).
  • Private mode in-memory history (set fish_history) is no longer shared with builtin read (#12662).

Other improvements

  • History is no longer corrupted with NUL bytes when fish receives SIGTERM or SIGHUP (#10300).
  • fish_update_completions now handles groff \X'...' device control escapes, fixing completion generation for man pages produced by help2man 1.50 and later (such as coreutils 9.10).
  • Removing history entries via the web-based config is more intuitive.
  • If XDG_DATA_DIRS is empty, the default value is assumed, which means that fish will now also use configuration from paths like $PREFIX/share/fish/vendor_completions.d (#11349).
  • Some internal file descriptors were moved to number 10 or higher, to reduce risk of clashes with those used by the user in scripts.
  • The wording of error messages has been made consistent, especially for builtin subcommands (#12556).

For distributors and developers

  • When the default global config directory ($PREFIX/etc/fish) exists but has been overridden via -DCMAKE_INSTALL_SYSCONFDIR, fish will now respect that override (#10748).
  • build_tools/update_translations.fish has been replaced by cargo xtask gettext {check,new,update} (#12676).
  • cargo xtask shellcheck to lint shell-scripts.

Regression fixes:

  • (from 4.6) Vi mode dl (#12461).
  • (from 4.6) Backspace after newline (#12583).
  • (from 4.3.3) Long options were spuriously completed after typing short options (85e76ba).
  • (from 3.2) nosuchcommand || echo hello executes the right hand side again (#12654).

Thanks to everyone who contributed through issue discussions, code reviews, or code changes.

Welcome our new committers: Armandas Jarušauskas, Daniel D. Beck, Dennis Yildirim, Jaakko Koivisto, Kayce Basques, Nathaniel, Saúl Nogueras, Vishrut Sachan, Yakov Till, cunlem, joveian, r-vdp

Welcome back our returning committers: Bacal Mesfin, Branch Vincent, Daniel Rainer, David Adam, Johannes Altmanninger, Nahor, Peter Ammon, Remo Senekowitsch, xtqqczze


Download links: To download the source code for fish, we suggest the file named fish-4.7.0.tar.xz. The file downloaded from Source code (tar.gz) will not build correctly. A GPG signature using this key is available as fish-4.7.0.tar.xz.asc.

The files called fish-4.7.0-linux-*.tar.xz contain standalone fish binaries for any Linux with the given CPU architecture.

Don't miss a new fish-shell release

NewReleases is sending notifications on new releases.