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_pathnow 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-obinding 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_DIRSis 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.fishhas been replaced bycargo xtask gettext {check,new,update}(#12676).cargo xtask shellcheckto 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 helloexecutes 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.