github fish-shell/fish-shell 2.1.0
fish 2.1.0

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

Significant Changes

  • Tab completions will fuzzy-match files. #568

    When tab-completing a file, fish will first attempt prefix matches (foo matches foobar), then substring matches (ooba matches foobar), and lastly subsequence matches (fbr matches foobar). For example, in a directory with files foo1.txt, foo2.txt, foo3.txt…, you can type only the numeric part and hit tab to fill in the rest.

    This feature is implemented for files and executables. It is not yet implemented for options (like --foobar), and not yet implemented across path components (like /u/l/b to match /usr/local/bin).

  • Redirections now work better across pipelines. #110, #877

    In particular, you can pipe stderr and stdout together, for example, with cmd ^&1 | tee log.txt, or the more familiar cmd 2>&1 | tee log.txt.

  • A single % now expands to the last job backgrounded. #1008

    Previously, a single % would pid-expand to either all backgrounded jobs, or all jobs owned by your user. Now it expands to the last job backgrounded. If no job is in the background, it will fail to expand. In particular, fg % can be used to put the most recent background job in the foreground.

Other Notable Fixes

  • alt-U and alt+C now uppercase and capitalize words, respectively. #995

  • VTE based terminals should now know the working directory. #906

  • The autotools build now works on Mavericks. #968

  • The end-of-line binding (ctrl+E) now accepts autosuggestions. #932

  • Directories in /etc/paths (used on OS X) are now prepended instead of appended, similar to other shells. #927

  • Option-right-arrow (used for partial autosuggestion completion) now works on iTerm2. #920

  • Tab completions now work properly within nested subcommands. #913

  • printf supports \e, the escape character. #910

  • fish_config history no longer shows duplicate items. #900

  • $fish_user_paths is now prepended to $PATH instead of appended. #888

  • Jobs complete when all processes complete. #876

    For example, in previous versions of fish, sleep 10 | echo Done returns control immediately, because echo does not read from stdin. Now it does not complete until sleep exits (presumably after 10 seconds).

  • Better error reporting for square brackets. #875

  • fish no longer tries to add /bin to $PATH unless PATH is totally empty. #852

  • History token substitution (alt-up) now works correctly inside subshells. #833

  • Flow control is now disabled, freeing up ctrl-S and ctrl-Q for other uses. #814

  • sh-style variable setting like foo=bar now produces better error messages. #809

  • Commands with wildcards no longer produce autosuggestions. #785

  • funced no longer freaks out when supplied with no arguments. #780

  • fish.app now works correctly in a directory containing spaces. #774

  • Tab completion cycling no longer occasionally fails to repaint. #765

  • Comments now work in eval'd strings. #684

  • History search (up-arrow) now shows the item matching the autosuggestion, if that autosuggestion was truncated. #650

  • Ctrl-T now transposes characters, as in other shells. #128

Don't miss a new fish-shell release

NewReleases is sending notifications on new releases.