Releases: fish-shell/fish-shell
Release list
fish 4.8.1
This release serves primarily to fix some regressions from 4.8.0 and other bugs.
Interactive improvements
- On non-macOS platforms,
alt-backspace,alt-delete,alt-leftandalt-rightoperate on words again instead of tokens (#12122) eliminating cross-platform differences in input handling. - Builtin and function commands can now be colored separately via new variables
fish_color_builtinandfish_color_function(#12837). - Add fish_darcs_prompt for Darcs repository status.
- Fixed a crash in
commandline --current-processwhen the cursor is inside a&|pipe (#12868). - Since prompt marking (via OSC 133) causes an issue in Konsole’s default configuration, prompt marking had been disabled for Konsole in 4.8.0. Now the
omit-term-workaroundsfeature flag can be enabled to enable prompt marking on Konsole again (#12859).
Regression fixes:
- (From 4.8.0)
abbr --position=anywherecompletions are no longer offered in argument position, to avoid cluttering the completion pager (#12838). - (From 4.8.0)
pacman -Qshort option completions (#12857).
A GPG signature for fish-4.8.1.tar.xz using this key is available as fish-4.8.1.tar.xz.asc.
The files called fish-4.8.1-linux-*.tar.xz contain standalone fish binaries for any Linux with the given CPU architecture.
fish 4.8.0
This release brings 234 new commits since 4.7.1, contributed by 39 authors, 21 of which are new faces.
Notable improvements and fixes
- Translatable messages defined in Rust source code can and should now be translated using Fluent instead of GNU gettext. For now, GNU gettext continues to be used for translating messages defined in fish scripts. To make Fluent easy to work with, we have added tooling based on the new fluent-ftl-tools library. See Contributing Translations (#11928).
Deprecations and removed features
- Builtin complete’s
--commandand--pathoptions no longer unescape their argument.
Interactive improvements
- History search would sometimes forget about commands after those were re-run in concurrent sessions. This has been fixed (#10300).
fish_hg_prompt,fish_git_promptandfish_fossil_promptnow strip control characters from VCS state read off disk, matchingprompt_pwd.- Abbreviations with
--position=anywherecan now be completed in argument position, not just in command position (#12630). - Path component movement (
ctrl-w) skips escaped characters. - Completion of short option groups will now handle
--conditioncorrectly (#12821). - Fixed an issue where
ctrl-cmight fail to cancel certain functions (#12802). - On the first run after upgrading from an older version, fish will try harder to check if the current theme matches a historical default. If it does match, fish won’t create
~/.config/fish/conf.d/fish_frozen_theme.fishwhen upgrading from fish < 4.3. In particular, on systems where fish version 3.x was installed originally, fish will now avoid creating that file on upgrade (#12725).
Scripting improvements
cdsupports the-Land-Poptions, like other shells, to allow specifying whether symbolic links (symlinks) are resolved when changing directories (#7206).cdwith a relative path will now retry using the real current directory, if$PWDhas been moved (#12700).- Nested brace expansions now strip unquoted leading and trailing spaces from entries consistently (#12794).
- bind shows the files where bindings were defined (#12504).
Other improvements
- fish no longer creates the
__fish_initializeduniversal variable on startup. If you don’t expect to need to downgrade to earlier versions, you can remove it withset --erase __fish_initialized. This means that fish now only creates universal variables if instructed by the user.
For distributors and developers
- With the exception of the
$CMAKE_INSTALL_PREFIX/share/fish/mandirectory, fish no longer installs files to$CMAKE_INSTALL_PREFIX/share/fish. In particular, this means that both$CMAKE_INSTALL_PREFIX/share/fish/completionsand$CMAKE_INSTALL_PREFIX/share/fish/functionsshould no longer exist. These directories have been ignored since fish 4.2. If another package installs fish scripts there, they should be corrected to install toextra_completionsdir(typically$CMAKE_INSTALL_PREFIX/share/fish/vendor_completions.d),extra_functionsdir(typically$CMAKE_INSTALL_PREFIX/share/fish/vendor_functions.d) orextra_confdir(typically$CMAKE_INSTALL_PREFIX/share/fish/vendor_functions.d) instead. See also the output offor var in completions functions conf; pkgconf fish --variable="$var"dir; end.
Regression fixes:
- (from 4.4.0) Vi mode
c,Wkey binding wrongly deleted trailing spaces (#12790). - (from 4.4.0) Vi mode
xin builtin read (#12724). - (from 4.3.3) Repeated tab would sometimes insert smartcase completions redundantly.
- (from 4.3.0) Pressing escape during command execution could insert garbage text into the command line (#12379).
Thanks to everyone who contributed through issue discussions, code reviews, or code changes.
Welcome our new committers: Clément Bœsch, Deepak kudi, Drazape, Hans Larsen, Harry Garrood, Jian Weihang, Jonas Natten, June Kim, Justin Su, KeloYuan, Mark Otzen, Michael Morgan, Milo, Sean Reifschneider, Tunglies, Wes Higbee, cyphercodes, ketal, ritoban23, saku0512, sorgel
Welcome back our returning committers: Asuka Minato, Collin Styles, Daniel Rainer, David Adam, Fabian Boehm, Henrik Hørlück Berg, Johannes Altmanninger, Mahmoud Al-Qudsi, Nahor, Peter Ammon, PowerUser64, Remo Senekowitsch, Shayan, Tristan Partin, Vishrut Sachan, huaji2369, visrosa, xtqqczze
Download links: To download the source code for fish, we suggest the file named fish-4.8.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.8.0.tar.xz.asc.
The files called fish-4.8.0-linux-*.tar.xz contain standalone fish binaries for any Linux with the given CPU architecture.
macOS packages will be uploaded soon
fish 4.7.1
This release fixes a regression in 4.7.0 that caused the web config (fish_config) to fail to start (#12717).
Download links: To download the source code for fish, we suggest the file named fish-4.7.1.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.1.tar.xz.asc.
The files called fish-4.7.1-linux-*.tar.xz contain standalone fish binaries for any Linux with the given CPU architecture.
fish 4.7.0
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.
fish 4.6.0
This release brings 100 new commits since 4.5.0, contributed by 27 authors, 15 of which are new committers.
Notable improvements and fixes
Deprecations and removed features
- The default width for emoji is switched from 1 to 2, improving the experience for users connecting to old systems from modern desktops. Users of old desktops who notice that lines containing emoji are misaligned can set
$fish_emoji_widthback to 1 (#12562).
Interactive improvements
- The tab completion pager now left-justifies the description of each column (#12546).
- fish now supports the
SHELL_PROMPT_PREFIX,SHELL_PROMPT_SUFFIX, andSHELL_WELCOMEenvironment variables. The prefix and suffix are automatically prepended and appended to the left prompt, and the welcome message is displayed on startup after the greeting. These variables are set by systemd’srun0for example (#10924).
Improved terminal support
set_coloris able to turn off italics, reverse mode, strikethrough and underline individually (e.g.--italics=off).set_colorlearned the foreground (--foregroundor-f) and reset (--reset) options.- An error caused by slow terminal responses at macOS startup has been addressed (#12571).
Other improvements
- Signals like
SIGWINCH(as sent on terminal resize) no longer interrupt builtin output (#12496). - For compatibility with Bash, fish now accepts
|&as alternate spelling of&|, for piping both standard output and standard error (#11516). fish_indentnow preserves comments and newlines immediately preceding a brace block ({ }) (#12505).- A crash when suspending certain pipelines with
ctrl-zhas been fixed (#12301).
For distributors and developers
cargo xtasksubcommands no longer panic on test failures.
Regression fixes:
- (from 4.5.0) Intermediate
⏎artifact when redrawing prompt (#12476). - (from 4.4.0)
historyhonors explicitly specified--color=again (#12512). - (from 4.4.0) Vi mode
dlanddh(#12461). - (from 4.3.0) Error completing of commands starting with
-(#12522).
Thanks to everyone who contributed through issue discussions, code reviews, or code changes.
Welcome our new committers: Aditya Giri, Daan De Meyer, Daniel Danner, Helen Chong, Janne Pulkkinen, Julien Gautier, Lieuwe Rooijakkers, Mike Yuan, Noah Hellman, Remo Senekowitsch, Rodolfo Gatti, Steffen Winter, rohan436, t4k44
Welcome back our returning committers: Daniel Rainer, David Adam, Delapouite, Fabian Boehm, JANMESH ARUN SHEWALE, Johannes Altmanninger, Julio Napurí, Nahor, Peter Ammon, Volodymyr Chernetskyi, exploide, xtqqczze
Download links: To download the source code for fish, we suggest the file named fish-4.6.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.6.0.tar.xz.asc.
The files called fish-4.6.0-linux-*.tar.xz contain standalone fish binaries for any Linux with the given CPU architecture.
fish 4.5.0
This is mostly a patch release for Vi mode regressions in 4.4.0 but other minor behavior changes are included as well.
This release comprises 68 commits since 4.4.0, contributed by 16 authors, 8 of which are new committers.
Interactive improvements
ctrl-lno longer cancels history search (#12436).- History search cursor positioning now works correctly with characters of arbitrary width.
Deprecations and removed features
- fish no longer reads the terminfo database to alter behaviour based on the
TERMenvironment variable, and does not depend on ncurses or terminfo. Theignore-terminfofeature flag, introduced and enabled by default in fish 4.1, is now permanently enabled. fish may no longer work correctly on Data General Dasher D220 and Wyse WY-350 terminals, but should continue to work on all known terminal emulators released in the 21st century.
Regression fixes:
- (from 4.4.0) Vi mode
d,fkey binding did not work (#12417). - (from 4.4.0) Vi mode
c,wkey binding wrongly deleted trailing spaces (#12443). - (from 4.4.0) Vi mode crash on
c,i,wafter accepting autosuggestion (#12430). - (from 4.4.0)
fish_vi_key_bindingscalled with a mode argument produced an error (#12413). - (from 4.0.0) Build on Illumos (#12410).
Thanks to everyone who contributed through issue discussions, code reviews, or code changes.
Welcome our new committers: Aman Verma, Jack Pickle, Liam Snow, Pothi Kalimuthu, Salman Muin Kayser Chishti, Simon Olofsson, Tristan Partin, Weixie Cui
Welcome back our returning committers: Daniel Rainer, David Adam, Francisco Giordano, Johannes Altmanninger, Nahor, Peter Ammon, madblobfish, xtqqczze
Download links: To download the source code for fish, we suggest the file named fish-4.5.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.5.0.tar.xz.asc.
The files called fish-4.5.0-linux-*.tar.xz contain standalone fish binaries for any Linux with the given CPU architecture.
fish 4.4.0
This release comprises 215 commits since 4.3.3, contributed by 20 authors, 9 of which are new committers.
Deprecations and removed features
- The default fossil prompt has been disabled (#12342).
Interactive improvements
- The
bindbuiltin lists mappings from all modes if--modeis not provided (#12214). - Line-wise autosuggestions that don’t start a command are no longer shown (739b82c, 58e7a50).
- Builtin
historynow assumes thatPAGERsupports ANSI color sequences. - fish now clears the terminal’s
FLUSHOflag when acquiring control of the terminal, to fix an issue caused by pressingctrl-oon macOS (#12304).
New or improved bindings
- Vi mode word movements (
w,W,e, andE) are now largely in line with Vim. The only exception is that underscores are treated as word separators (#12269). - New special input functions to support these movements:
forward-word-vi,kill-word-vi,forward-bigword-vi,kill-bigword-vi,forward-word-end,backward-word-end,forward-bigword-end,backward-bigword-end,kill-a-word,kill-inner-word,kill-a-bigword, andkill-inner-bigword. - Vi mode key bindings now support counts for movement and deletion commands (e.g. d3w or 3l), via a new operator mode (#2192).
- New
catppuccin-*color themes.
Improved terminal support
set_colorlearned the strikethrough (--strikethroughor-s) modifier.
For distributors and developers
- The CMake option
WITH_GETTEXThas been renamed toWITH_MESSAGE_LOCALIZATION, to reflect that it toggles localization independently of the backend used in the implementation. - New
cargo xtaskcommands can replace some CMake workflows.
Regression fixes:
- (from 4.1.0) Crash when autosuggesting Unicode characters with nontrivial lowercase mapping (#12326, 78f4541).
- (from 4.3.0) Glitch on
read --prompt-str ""(#12296).
Thanks to everyone who contributed through issue discussions, code reviews, or code changes.
Welcome our new committers: Heitor Augusto, JANMESH ARUN SHEWALE, SharzyL, Tiago de Paula, Timen Zandbergen, Wang Bing-hua, andreacfromtheapp, iksuddle, neglu
Welcome back our returning committers: Daniel Rainer, David Adam, Fabian Boehm, Ilya Grigoriev, Johannes Altmanninger, Luc J. Bourhis, Next Alone, Peter Ammon, Razzi Abuissa, phanium, xtqqczze
Download links: To download the source code for fish, we suggest the file named fish-4.4.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.4.0.tar.xz.asc.
The files called fish-4.4.0-linux-*.tar.xz contain standalone fish binaries for any Linux with the given CPU architecture.
fish 4.3.3
This release fixes the following problems identified in fish 4.3.0:
- Selecting a completion could insert only part of the token (#12249).
- Glitch with soft-wrapped autosuggestions and fish_right_prompt (#12255).
- Spurious echo in tmux when typing a command really fast (#12261).
tomorrowtheme always using the light variant (#12266).fish_config theme choosesometimes not shadowing themes set by e.g. webconfig (#12278).- The sample prompts and themes are correctly installed (#12241).
- Last line of command output could be hidden when missing newline (#12246).
Other improvements include:
- The
abbr,bind,complete,functions,historyandtypecommands now support a--coloroption to control syntax highlighting in their output. Valid values areauto(default),always, ornever. - Existing file paths in redirection targets such as
> file.txtare now highlighted usingfish_color_valid_path, indicating thatfile.txtwill be clobbered (#12260).
Download links: To download the source code for fish, we suggest the file named fish-4.3.3.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.3.3.tar.xz.asc.
The files called fish-4.3.3-linux-*.tar.xz contain standalone fish binaries for any Linux with the given CPU architecture.
fish 4.3.2
This release fixes the following problems identified in 4.3.0:
- Pre-built macOS packages failed to start due to a
Malformed Mach-O fileerror (#12224). extra_functionsdir(usuallyvendor_functions.d) and friends were not used (#12226).- Sample config file
~/.config/fish/config.fish/and config directories~/.config/fish/conf.d/,~/.config/fish/completions/and~/.config/fish/functions/were recreated on every startup instead of only the first time fish runs on a system (#12230). - Spurious echo of
^[[Iin some scenarios (#12232). - Infinite prompt redraw loop on some prompts (#12233).
- The removal of pre-built HTML docs from tarballs revealed that cross compilation is broken because we use
${CMAKE_BINARY_DIR}/fish_indentfor building HTML docs. As a workaround, the new CMake build optionFISH_INDENT_FOR_BUILDING_DOCScan be set to the path of a runnablefish_indentbinary.
Download links: To download the source code for fish, we suggest the file named fish-4.3.2.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.3.2.tar.xz.asc.
The files called fish-4.3.2-linux-*.tar.xz contain standalone fish binaries for any Linux with the given CPU architecture.
fish 4.3.1
This release fixes the following problem identified in 4.3.0:
- Possible crash after expanding an abbreviation (#12223).
Download links: To download the source code for fish, we suggest the file named fish-4.3.1.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.3.1.tar.xz.asc.
The files called fish-4.3.1-linux-*.tar.xz contain standalone fish binaries for any Linux with the given CPU architecture.