github fish-shell/fish-shell 2.5.0
fish 2.5.0 (released February 3, 2017)

latest releases: 3.7.1, 3.7.0, 3.6.4...
7 years ago

There are no major changes between 2.5b1 and 2.5.0. If you are upgrading from version 2.4.0 or before, please also review the release notes for 2.5b1 (included below).

Notable fixes and improvements

  • The Home, End, Insert, Delete, Page Up and Page Down keys work in Vi-style key bindings (#3731).

The release notes for fish 2.5b1 are as follows:

Platform Changes

Starting with version 2.5, fish requires a more up-to-date version of C++, specifically C++11 (from 2011). This affects some older platforms:

Linux

For users building from source, GCC's g++ 4.8 or later, or LLVM's clang 3.3 or later, are known to work. Older platforms may require a newer compiler installed.

Unfortunately, because of the complexity of the toolchain, binary packages are no longer published by the fish-shell developers for the following platforms:

  • Red Hat Enterprise Linux and CentOS 5 & 6 for 64-bit builds
  • Ubuntu 12.04 (EoLTS April 2017)
  • Debian 7 (EoLTS May 2018)

Installing newer version of fish on these systems will require building from source.

OS X SnowLeopard

Starting with version 2.5, fish requires a C++11 standard library on OS X 10.6 ("SnowLeopard"). If this library is not installed, you will see this error: dyld: Library not loaded: /usr/lib/libc++.1.dylib

MacPorts is the easiest way to obtain this library. After installing the SnowLeopard MacPorts release from the install page, run:

sudo port -v install libcxx

Now fish should launch successfully. (Please open an issue if it does not.)

This is only necessary on 10.6. OS X 10.7 and later include the required library by default.

Other significant changes

  • Attempting to exit with running processes in the background produces a warning, then signals them to terminate if a second attempt to exit is made. This brings the behaviour for running background processes into line with stopped processes. (#3497)
  • random can now have start, stop and step values specified, or the new choice subcommand can be used to pick an argument from a list (#3619).
  • A new key bindings preset, fish_hybrid_key_bindings, including all the Emacs-style and Vi-style bindings, which behaves like fish_vi_key_bindings in fish 2.3.0 (#3556).
  • function now returns an error when called with invalid options, rather than defining the function anyway (#3574). This was a regression present in fish 2.3 and 2.4.0.
  • fish no longer prints a warning when it identifies a running instance of an old version (2.1.0 and earlier). Changes to universal variables may not propagate between these old versions and 2.5b1.
  • Improved compatiblity with Android (#3585), MSYS/mingw (#2360), Solaris (#3456, #3340)
  • Like other shells, the test builting now returns an error for numeric operations on invalid integers (#3346, #3581).
  • complete no longer recognises --authoritative and --unauthoritative options, and they are marked as obsolete.
  • status accepts subcommands, and should be used like status is-interactive. The old options continue to be supported for the foreseeable future (#3526), although only one subcommand or option can be specified at a time.
  • Selection mode (used with "begin-selection") no longer selects a character the cursor does not move over (#3684).
  • List indexes are handled better, and a bit more liberally in some cases (echo $PATH[1 .. 3] is now valid) (#3579).
  • The fish_mode_prompt function is now simply a stub around fish_default_mode_prompt, which allows the mode prompt to be included more easily in customised prompt functions (#3641).

Notable fixes and improvements

  • alias, run without options or arguments, lists all defined aliases, and aliases now include a description in the function signature that identifies them.
  • complete accepts empty strings as descriptions (#3557).
  • command accepts -q/--quiet in combination with --search (#3591), providing a simple way of checking whether a command exists in scripts.
  • Abbreviations can now be renamed with abbr --rename OLD_KEY NEW_KEY (#3610).
  • The command synopses printed by --help options work better with copying and pasting (#2673).
  • help launches the browser specified by the $fish_help_browser variable if it is set (#3131).
  • History merging could lose items under certain circumstances and is now fixed (#3496).
  • The $status variable is now set to 123 when a syntactically invalid command is entered (#3616).
  • Exiting fish now signals all background processes to terminate, not just stopped jobs (#3497).
  • A new prompt_hostname function which prints a hostname suitable for use in prompts (#3482).
  • The __fish_man_page function (bound to Alt-h by default) now tries to recognize subcommands (e.g. git add will now open the "git-add" man page) (#3678).
  • A new function edit_command_buffer (bound to Alt-e & Alt-v by default) to edit the command buffer in an external editor (#1215, #3627).
  • set_color now supports italics (--italics), dim (--dim) and reverse (--reverse) modes (#3650).
  • Filesystems with very slow locking (eg incorrectly-configured NFS) will no longer slow fish down (#685).
  • Improved completions for apt (#3695), fusermount (#3642), make (#3628), netctl-auto (#3378), nmcli (#3648), pygmentize (#3378), and tar (#3719).
  • Added completions for:

Download links: to download the source code for fish, we suggest the file named "fish-2.5.0.tar.gz". The file downloaded from "Source code (tar.gz)" will not build correctly.

Don't miss a new fish-shell release

NewReleases is sending notifications on new releases.